我有一個dll,有人讓我用C++。我需要在VB中使用這個DLL,爲了做到這一點,我必須在C++中創建另一個具有我可以在VB中調用的函數的DLL。在VB崩潰問題的C++ DLL
我所做的C++ dll有4個函數。 2個回調函數,用於從原始C++中檢索信息。以及我可以從VB調用來發送該信息的2個函數。
我知道原來的DLL工作正常,因爲我已經在控制檯應用程序中無休止地測試了它。
但是,當我用我的DLL和VB ..我得到隨機崩潰。
我的VB應用程序中幾乎沒有代碼用於測試。它只是輸出信息,所以沒有問題。
我相信問題出在我所做的C++ dll中。我用C++很新。
我想也許一個變量可以在兩個區域同時訪問(這是可能的嗎?)並導致它崩潰?
我的繼承人C的基本佈局+ DLL
//global variables
CString allInfo="";
char* info=new char[25000];
//call back function 1
HANDLE OnInfo(SendInfo* tempInfo)
{
CString stringTemp="";
stringTemp=tempInfo->infomessage;
allInfo=allInfo+ stringTemp+"\n";
return 0;
}
//function for vb
BSTR _stdcall vbInfo()
{
allInfo=allInfo.Right(20000); //get last 20,000 characters
strcpy_s(info,20000,allInfo);
BSTR Message;
Message = SysAllocStringByteLen (info, lstrlen(info));
return Message;
}
崩潰似乎完全隨機發生。
有什麼建議嗎?
感謝
發佈這些函數的vb.net聲明。 –