網路城邦
上一篇 回創作列表 下一篇   字體:
[BCB] 調用DLL函數 [解決stack overflow問題]
2011/06/21 17:01:00瀏覽2978|回應0|推薦0
問題描述:

為了讓BCB使用其他C++編譯器產生的DLL檔案,首先使用靜態調度DLL的方式,方法為產生BCB需要的Lib檔案(使用implib MainAlgorithm.lib MainAlgorithm.dll 來產生)

包入*.lib後,在檔案開頭用
extern "C" __declspec(dllimport) int  SearchSolution(char* info);

宣告...



結果:當我們執行 迴圈:  while(SearchSolution(info)){....}  時候,且執行的東西夠大,立刻就會產生Overflow!!該怎麼解決呢?

這個問題,我解了很久,今天終於在一個大陸的網站找到解答,有趣的是,對方是問另一個完全不相干的問題,我就在想,該不會這有影響吧!一試下去!果然就靈!只能說C++Builder...我真搞不懂你啊XD...

答案....使用動態調度DLL大法!!!!

改宣告

HANDLE hdDll;

int ( *Dll_SearchSolution)(char* info);

hdDll=LoadLibrary("MainAlgorithm.dll");//使用WinAPI

Dll_SearchSolution =  (int( *)(char* info))GetProcAddress(hdDll,"SearchSolution");

接下來改使用Dll_SearchSolution 取代原先的函數!解決!
( 不分類不分類 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇