C++ builder中开发DLL和序 |
尚未結案
|
mchakuna
一般會員 發表:41 回覆:45 積分:17 註冊:2004-01-07 發送簡訊給我 |
我一直用Delphi, 最近在学C++。於是用上C++ builder。我过去曾用Delphi写过一个DLL程序。其入很简单
//////////////////////////////////////////////////////////// function LibInit : boolean; begin ... Result := TRUE; end; procedure LibExit; begin ... end; // DoSomething will be called by the main program function DoSomething: Integer; stdcall; begin ... Result := 0; end; ... ... ... exports DoSomething index 1,换了BCB后, 我根据一些资料将上述代码改为 // DLL entry point BOOL WINAPI DllMain( HANDLE hModule, DWORD UC, LPVOID lpReserved ) { ... switch (UC) { case DLL_PROCESS_ATTACH: { ... } break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: break; } return TRUE; } // Callbacks from Becky! #ifdef __cplusplus extern "C"{ #endif //////////////////////////////////////////////////////////////////////int WINAPI DoSomething() { ... return 0; } /////////////////////////////// // 导出文件为 *.def DESCRIPTION 'My DLL' EXPORTS DoSomething @1这个DLL是跟一个第三方程序协作的。这个第三方程序会读入这个DLL然后运行DoSomething这个函数。这段代码在我的机器上没有问题。但一放到别的机器上就不能被第三方程序找到。然而,如果用Delphi写,则不管在本地还是别的机器上都没有问题。请教大家到底那里出毛病了? 另外,我有个很严重的问题想请大家帮忙解决。我在用Delphi开发上述DLL时用到了一个组件(姑且叫ABC)。然而,当我转成BCB时为了继续用上它。我就用 dcc32 - JPHW abc.pas 将它编辑成abc.hpp跟abc.obj。然后连结到BCB中,并加入 ... #include来连结到我的程序中。问题出现了,虽然编译及运行均正常。但当我用exescope这类软件查看DLL的结构时却发现问题。本来我的DLL只导出DoSomething这个函数。然而,现却把ABC中的所有函数跟我自已定义在mysetting.cpp(包含一个TForm)中的函数都一并导出了。这是怎样回事?怎样解决? 用Delphi版本的DLL的导出结构为 序号 地址 名称 00000001 00403328 DoSomething 用BCB版本的DLL的导出结构为 序号 地址 名称 ... 00000025 00502118 ABC@ShowTime$qqr16System@TDateTime ... 00000001 00403328 DoSomething ... 000000D0 0041B614 _MySettingFrom 000000CE 0041B408 _MySettingFrom 000000CE 0041B60C MySettingFrom 000000AE 004160F8 __CPPDebugHook 不知是否因为多导出了这些函数所以第三方程序不能正常载入我的DLL。请各位帮忙看看。先谢了。 |
mchakuna
一般會員 發表:41 回覆:45 積分:17 註冊:2004-01-07 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
您好,請參考: BCB编写DLL终极手册
http://www.programfan.com/showarticle.asp?id=2271 在C Builder里创建可以被Visual C 使用的DLL
http://www.csdn.net/develop/article/24/24393.shtm -------------------------------
數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D
-------------------------------
|
mchakuna
一般會員 發表:41 回覆:45 積分:17 註冊:2004-01-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |