VC编译的DLL回调VB函数出错 本帖最后由 weichaogui 于 2011-01-07 15:53:48 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个回调函数若是VC的则非常的正常,一旦用VB中的就不行,对VB不熟,所以不知道是DLL中的问题还是VB中的问题。 还没这样用过,只是VC写DLL供VB使用,没有函数传递都是参数传递 VB的回调,VC不一定方便调用,可以考虑用其他进程通信方式等. 没人知道吗?现在我把DLL改为OCX的形式供VB6调用,DLL中回调函数也相应的改用OCX中的事件方式。我在OCX中增加了多线程,在线程里触发事件,这样做也会崩溃。无奈之下只好定义了一些全局变量和标志,在线程中改变这些变量和标识,然后在定时器中监视这些变量标志来触发事件,这样做程序就不会崩溃了,但这方式我觉得比较呆笨,哪位有这方面的经验,请不吝赐教。还有就是在VC中的PBYTE类型,我导出来是用VARIANT还是VARIANT* ? 在VB中又如何把VARIANT或VARIANT*转为Byte数组? 可以把PBYTE等转成数组等,然后用VARIANT等,VB中在转换 回调函数的堆栈调用约定是否一致呢,如果不一致在debug版本中检测堆栈平衡时就会发现错误导致出错. 感觉给vb的东西还是做成COM,你这种方式能否成功还真不知道 typedef int (CALLBACK *CALLBACKFUNCTION) (int a, int b);改为typedef int (CALLBACK __stdcall (*CALLBACKFUNCTION)) (int a, int b);试试,呵呵 我想研究个外挂,针对热血江湖,请前辈指教 特殊符号的处理问题 简单问题 怎样在按钮上加载位图或图标? 用CTreeView或TreeCtrl做类似资源管理器的文件树,好象很难。 小问题:MaxRecords为什么不好用? 高分请教一个简单的问题 高分请教高手(COM组件问题) 程序報錯﹐help. 怎样编程隐藏软件启动时的欢迎画面!给点思路? 在InstallShield6.1中如何加入MDAC2.5,在安装时让其自动运行? 如何改变对话框背景色? Win32 SDK程序中怎么使用GDI+?
改为typedef int (CALLBACK __stdcall (*CALLBACKFUNCTION)) (int a, int b);试试,呵呵