我在VC中做了个MFC 静态DLL,函数定义如下:
extern "c" _declspec(dllexport) bool TestPort(UINT portnr,UNIT baud)现在在VC中调用正确,但在VB中调用出错,请高手指点,我想这个DLL在另外的语言中都能调用正确。
extern "c" _declspec(dllexport) bool TestPort(UINT portnr,UNIT baud)现在在VC中调用正确,但在VB中调用出错,请高手指点,我想这个DLL在另外的语言中都能调用正确。
解决方案 »
- CButton//按钮设置为default button的属性与不设置该属性的按钮,有何区别?
- DirectShow的GraphEdit中 点Insert Filters 在其下拉菜单中点击DirectShow Filter后整个GraphEdit全部消失
- 求 屏幕抓4位的16色彩图,或着,把24位bmp文件转成4位的16色彩图
- 寻找关于压缩图片尺寸的可行性办法
- 简单问题,在MDI中如何打开自定义的对话框?不是以对话框形式打开,是以CHILD形式打开!
- 各位高手,请教请教?为什么VC中作一个W32DLL时会这样,为什么呢???
- 请问:用VC做过串口通讯用到什么类,究竟是怎样一个结构?
- 请问CListCtrl控件中如何用代码控制单选和多选?
- 如何改变dialog的clientrect
- 大哥哥,大姐姐们,帮帮我这个菜鸟吧!(之三)
- 无法使用Windbg中的local kernel debugging
- 我明明定义了,为什么编译通不过去呢?
bool __stdcall TestPort(UINT portnr,UNIT baud)
在.def文件中
TestPortTry again
我试过exitern "C" __stdcall bool TestPort
但调用还是有问题,不会出错,但调用不成功,也就是DLL就像没运行一样。注:VC 下写的DLL主要功能是通过串口像单片机发送验证密码,然后获得密码进行计算再返回结果(真或假),其中采用了多线程。大家帮我分析下原因,谢谢!!!!!!!!
bool __stdcall TestPort(UINT portnr,UNIT baud)
BOOL 放在前面
但是现在还有个问题,我在DLL里设置的函数返回的是BOOL,在VC里能正确返回TRUE或者FALSE,但 在VB里调用却一直返回FALSE,我在VB里是这样调用的:
Private Declare Function TestPort Lib "D:\ResourcesFile\VC\串口通信\ComDll\Release\ComDll.dll" (ByVal portnr As Integer, ByVal baud As Integer) As BooleanPrivate Sub Command1_Click()
dim Tes as boolean
Tes=TestPort(1,9600)
If Tes=true Then
Text1.Text = "返回正确……"
Else
Text1.Text = "返回不正确……"
End If
End Sub
if Tes Then
……
else
……
end if但是我调试了Tes=TestPort(1,9600)这句它一直都是返回真。
UINT __stdcall TestPort(uint portnr,uint baud)
如果测试成功返回return (1);否则return (0)。
在VB中声明
Private Declare Function TestPort Lib "D:\ResourcesFile\VC\串口通信\ComDll\Release\ComDll.dll" (ByVal portnr As Integer, ByVal baud As Integer) As Boolean
这样就可在VB中调用成功。可是……
问:函数我声明的UINT,怎么在VB中能生命boolean,如果不这样,我应该声明什么类型?