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

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()