问题是这样,有个dll文件,里面有个计时的函数,如果想正常使用dll的功能需要在开始传递一个字符串来调用一个禁用计时的函数,否则30分钟之后停止服务,该dll文件有的导出函数传递也是LPCSTR的,程序调用功能正常,也是采用传递byref 的 byte来进行的。
代码如下
dll导出语句
_declspec(dllexport) BOOL WINAPI Disable30MinTimer (LPCSTR AuthCode)
{
CString Authorization;
CWTclientApp *pApp;
pApp = (CWTclientApp *)AfxGetApp();
Authorization = AuthCode;
if (Authorization == "abcdefg")
{
pApp->DemoModeEnabled = FALSE;
return (TRUE);
}
else
return (FALSE);
}
vb.net导入dll的声明
Declare Function Disable30MinTimer Lib "WTClient" Alias "_Disable30MinTimer@4" (ByRef AccessCode As Byte) As Integer
调用的时候
Dim accesscode(100) As Byte
Dim rs As Integer
accesscode = System.Text.Encoding.ASCII.GetBytes("abcdefg")
rs = WTclient.Disable30MinTimer(accesscode(0))
rs返回0,且计时没有关闭,不清楚问题在哪。
------解决方案--------------------
哈哈,苦了你了,这真是太憋了。