首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问labvIEW调用dll的一个有关问题,解答!

2013-01-01 
请教labvIEW调用dll的一个问题,在线等各位高手解答!!!刚刚接触labvIEW,想要实现labvIEW调用dll。关键的是,

请教labvIEW调用dll的一个问题,在线等各位高手解答!!!
刚刚接触labvIEW,想要实现labvIEW调用dll。关键的是,我想在dll里面写一个函数,里面有判断条件,一旦不满足条件的话,能够弹出一个消息框,Messagebox()提示消息的。关键是Messagebox在dll文件里编译报错,即使调用成功的话,在labvIEW里面如果调用的话,他也能够弹出messagebox吗?


有没有谁能够告诉我这个dll里面的messagebox怎么写呢?  在线等,很着急!!!


void getdata_1(int start,float &data1_1,float &data1_2,float &data1_3,float &data1_4,float &data1_5,float &data1_6,int stop)
{
if(stop==1)
{
float data1_1 = 0;
float data1_2 = 0;
float data1_3 = 0;
float data1_4 = 0;
float data1_5 = 0;
float data1_6 = 0;
return;
}
else if(start==1)
{
void* p;
if(flag_sm==0)
{
 /*********************************************************************************************
打开共享内存和信号量(用于传递数据的)(用于显示光电信号的)  三路光电信号
   **********************************************************************************************/
           
                                    //光电1
 hshare_data_GD1= RtOpenSharedMemory(SHM_MAP_WRITE, FALSE, "GCCL_data2", &p);  
   mresult_p_GD1=(mresult_gd1*)p;
   if(hshare_data_GD1==NULL)
   {
   MessageBox("OpenSharedMemory_GD1 failed!");
   
   return;
   }
   
   hsema_data_GD1=RtOpenSemaphore(0, FALSE, "GCCL_dataSema2");
   if(hsema_data_GD1==NULL)
   {
   MessageBox("OpenSemaphore_GD1 failed!");
   return;
   }
   

            //光电2
          hshare_data_GD2= RtOpenSharedMemory(SHM_MAP_WRITE, FALSE, "GCCL_data3", &p);  
   mresult_p_GD2=(mresult_gd2*)p;
   if(hshare_data_GD2==NULL)
   {
   MessageBox("OpenSharedMemory_GD2 failed!");
   
   return;
   }


就是这个messagebox会报错!!!!
[解决办法]
SDK中MessageBox的定义如下:
int MessageBox(
  __in  HWND hWnd,
  __in  LPCTSTR lpText,
  __in  LPCTSTR lpCaption,
  __in  UINT uType
);
一般的用法大概是这样的:
MessageBox(this->Handle, "this is message", "title", MB_OK
[解决办法]
MB_ICONEXCLAMATION);
[解决办法]
注意参数的匹配。

MessageBoxA(NULL, "OpenSemaphore_GD1 failed!", "标题", MB_OK 
[解决办法]
 MB_ICONERROR);

热点排行