情况如下:
我制作了一个带有function1的dll,如下所示:
int function1( char *inVal, char *outVal)
{
....
strcpy(outVal,dn.commonname.c_str());
}
在最后一行 outVal 指向 dn.commonname ,它是一个字符串。
我使用 LoadLibrary 成功将此 dll 加载到另一个 dll 中。在第二个 dll 中,我有:
int function1(string inval, string &outVal)
{
typedef int (WINAPI *func1Ptr)(char *, char *);
char outValPtr[128] = {0};
int retVal = func1Lnk((char *)inVal.c_str(), outValPtr);
string outVal = outValPtr;
}
现在,我在代码中加载第二个 dll 并调用 fnuction1,但是当我检查函数的第二个参数时,我得到 NULL。
任何人都可以阐明这一点吗?
编辑-1
我将代码更改为:
int function1(string inVal, string &outVal)
{
typedef int (WINAPI *func1Ptr)(char *, char *);
char outValPtr[128] = {0};
int retVal = func1Lnk((char *)inVal.c_str(), outValPtr);
outVal = outValPtr;
}
但问题并没有解决。任何线索?