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

VB程序调用VC编写的dll,总是出错?哪位高手能指教一下

2012-03-04 
VB程序调用VC编写的dll,总是出错?谁能指教一下C++程序中:USB2080_Read.cpp文件中:externC voidEXPORT_st

VB程序调用VC编写的dll,总是出错?谁能指教一下
C++程序中:

USB2080_Read.cpp文件中:

extern   "C "
void   EXPORT   _stdcall   StartDeviceAD(int   FirstChannel,int   LastChannel,   int   Usb_Port,   CString   filename)         //读取卡件数据,启动线程
{
......
}

extern   "C "
void   EXPORT   _stdcall   StopDeviceAD()//释放卡件
{
........
}

USB2080_Read.def文件中:

EXPORTS
        StartDeviceAD;   Explicit   exports   can   go   here
        StopDeviceAD   ;   Explicit   exports   can   go   here

USB2080_Read.h文件中:
extern   "C "
{
void   EXPORT   _stdcall   StartDeviceAD(int   FirstChannel,int   LastChannel,   int   Usb_Port,   CString   filename);
void   EXPORT   _stdcall   StopDeviceAD();
}


VB程序中:

Private   Declare   Sub   StartDeviceAD   Lib   "C:\WINDOWS\system\USB2080_Read.dll "   _
(ByVal   FirstChannel   As   Long,   ByVal   LastChannel   As   Long,   ByVal   Usb_Port   As   Long,   ByVal   filename   As   String)

Private   Declare   Sub   StopDeviceAD   Lib   "C:\WINDOWS\system\USB2080_Read.dll "   ()

然后在后面用。


但是,当退出VB程序时,每两次就会发生一次错误。

提示:Chamber(VB的程序名)遇到一个问题,需要关闭,对此带来的不便深表歉意。



[解决办法]
很可能是参数类型不同所引起
[解决办法]
我怀疑可能还是CString参数出的问题。把它该成char*试下

[解决办法]
CString 很难说,但是 string 肯定可以, char * 也没问题,倒是在 vb 里面,我没传过 string ,一般我调 dll 的时候传 byte()

热点排行