我試圖建立一個DLL,它可以返回在Windows中的Visual Studio中的int和char *,但它發生內存泄漏,我建立這個DLL爲其他語言,當然,在今天的個人電腦,內存是非常大的我可以忽略這個錯誤,但我認爲我會盡我所能,我已經搜索了谷歌,但我仍然沒有找到答案,但我希望有人能告訴我如何解決這個問題,謝謝! farmilar與C++,我看過很多網頁來檢查如何建立一個dll.i希望我可以返回多個字符*在未來,當這個問題已經解決,任何建議?如何在同一時間在C++本機dll中返回整數和char *變量?
int __stdcall postsbinv(char ** retstring)
{
std::wstring wstrinvnum = L"1215265152";
size_t outputSize = wstrinvnum.length() + 1; // +1 for null terminator
char * retinvnumtemp = new char[outputSize];//memory leaks
size_t charsConverted = 0;
const wchar_t * wchar_invnum = wstrinvnum.c_str();
wcstombs_s(&charsConverted, retinvnumtemp, outputSize, wchar_invnum, wstrinvnum.length());//convert the utf-16 to ascii
*retstring = retinvnumtemp;//point to the char *
return 0;
}
PS:對於其他的語用,我已經使用的char * 感謝 問候 肯
最好的方法是提供一個獨立的函數,您的調用者可以使用它來釋放您返回的數據,這樣分配機制就是抽象的。 –