dll想返回内容给主程序时,最好让主程序分配好内存,然后把分配好的内存和内存大小传给DLL,DLL在内存中填好数据
例如:
---dll------
int __stdcall GetDLLContent(char* Buf = NULL, int BufSize = 0)
{
if (Buf && BufSize)
{
//将需要返回的内容拷由到Buf中,直到bufSize
//返回真正拷贝的字节大小
}
else
{
返回需要分配的内存大小
}
/// 主程序
int bufSize = GetDLLContent();
char* buffer;
buffer = malloc(sizeof(char) * bufSize);
int numRead = GetDLLContent(buffer, bufSize);
//使用buffer,直到numRead
free(buffer);
}