当前位置: 代码迷 >> VB Dotnet >> 求教 vb.net 调用dll 传递参数为LPCSTR的有关问题
  详细解决方案

求教 vb.net 调用dll 传递参数为LPCSTR的有关问题

热度:335   发布时间:2016-04-25 02:22:26.0
求教 vb.net 调用dll 传递参数为LPCSTR的问题
问题是这样,有个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,且计时没有关闭,不清楚问题在哪。
------解决方案--------------------
哈哈,苦了你了,这真是太憋了。