c++调用dll带字符数组函数是怎么声明的
c++调用dll带字符数组函数是如何声明的
dll中已知以下函数声明:
int Init(char aServer[30], int aPort);
我在vc中是这样调用的:
typedef int (*DLLInit)(char aServer[30], int aPort);
hDllAuto = LoadLibrary("DLL.dll");
if (hDllAuto == NULL)
return;
DLLInit Init = (DLLInit)GetProcAddress(hDllAuto, "Init");
if (Init == NULL) return;
Init("www.baidu.com", 80);
FreeLibrary(hDllAuto);
其中的运行Init("www.baidu.com", 80);这句时导致整个软件卡死,哪位大侠告诉以下怎么办啊?
------解决方案--------------------
声明写成这样:
typedef int (*DLLInit)(char *aServer,int aPort);
调用时要自己分配内存给aServer指针之后才能调用。
------解决方案--------------------
dll中已知以下函数声明:
int Init(char aServer[30], int aPort);
我在vc中是这样调用的:
typedef int (*DLLInit)(char aServer[30], int aPort);
hDllAuto = LoadLibrary("DLL.dll");
if (hDllAuto == NULL)
return;
DLLInit Init = (DLLInit)GetProcAddress(hDllAuto, "Init");
if (Init == NULL) return;
Init("www.baidu.com", 80);
FreeLibrary(hDllAuto);
其中的运行Init("www.baidu.com", 80);这句时导致整个软件卡死,哪位大侠告诉以下怎么办啊?
------解决方案--------------------
声明写成这样:
typedef int (*DLLInit)(char *aServer,int aPort);
调用时要自己分配内存给aServer指针之后才能调用。
------解决方案--------------------
- C/C++ code
int WINAPI Init(char aServer[30], int aPort);