毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

用DELPHI调用DLL回调函数一直没反应

更新时间:2012-11-18:  来源:毕业论文

#ifndef _FSC_MOTOSRV_H_ #define _FSC_MOTOSRV_H_   #ifdef WIN32  #ifdef MOTO_SRV_EXPORTS   #define MOTOSRV_API  extern "C" __declspec(dllexport)   #else  #define MOTOSRV_API  __declspec(dllimport)   #endif    #define _CALL __cdecl #endif  //WIN32      typedef int  bool;     typedef void (WINAPI *MOTO_Callback)(char *msg, int msglen);     //注册接到对方数据时的回调函数 MOTOSRV_API void _CALL MOTO_SetCallBackFun(MOTO_Callback cb);接待方案 

以上是DLL的头文件

C/C++ code
?1234567891011121314151617181920212223242526 void __stdcall display(char *msg, int len) {     int i;     for(i =0; i<len; ++i)     {         printf("0x%02x ",msg[i]);     }     printf("\n");     return; }     int main(int argc, char **argv) {         //////////////////////// 接收数据 ////////////////////////////     //设置回调函数     MOTO_SetCallBackFun(display);       //开始接收数据     MOTO_StartRecv(Port);     }

以上是C++调用DLL时候的回调函数部分,运行正常。

Delphi/Pascal code
?12345678910111213141516171819202122232425 typePCALLBACK = procedure(ss:string;n:integer);stdcall;   procedure CallBack(ss:string;n:integer);stdcall;   procedure MOTO_SetCallBackFun(cbf: PCALLBACK);cdecl; external 'moto_srv.dll';   implementation  procedure CallBack(ss:string;n:integer);stdcall;   begin   showmessage('11'); end;   procedure TForm1.Sendaaa(); varcallbackFun: PCALLBACK; begin    callbackFun:= CallBack;     MOTO_SetCallBackFun(callbackFun);     MOTO_StartRecv(4004);   end;

以上是DELPHI 调用DLL的回调函数部分的代码,可是回调函数完全没反应啊,请问什么地方有问题啊?谢谢!

。。。。。我看到了string,换成PChar试试
PCALLBACK = procedure(ss:pchar;n:integer);stdcall;

procedure CallBack(ss:pchar;n:integer);stdcall;

试试这样
MOTO_SetCallBackFun(@callbackFun);

可能与连接硬件有关。
procedure MOTO_SetNetParam(str:string; n:integer);cdecl;external'moto_srv.dll' ;

需要修改一下

procedure MOTO_SetNetParam(str:PAnsiChar; n:integer);cdecl;external'moto_srv.dll' ;
问题终于解决了!原来DEMO里面的DLL和之前他给我的DLL不一样!!!!!!!!
DEMO是后来我跟他要的,他修改了没告诉我,我傻了吧唧的搞了好几天,终于在上厕所时候来了灵感,把DEMO里的DLL复制到我的程序里,立刻能用了!!!!!!

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。