谁能提供用C++ Builder调用VC写的DLL的例子?

reallove 2003-09-06 10:03:23
我用VC写了一个DLL,然后用VC写一个程序调用它,完全没问题。
但用C++ Builder调用时,总是不成功。
请问,应该如何才能正确调用VC的DLL?给个例子,100分相谢。
...全文
29 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
freeia 2003-09-12
  • 打赏
  • 举报
回复
?
恩?刚长了一个三毛裤,到达三个三毛裤要多少专家分?
freeia 2003-09-12
  • 打赏
  • 举报
回复
楼主,现在没时间讨论你这个,给个连接你:

http://vcprogramming.nease.net/mydownload/vchome_dll.chm

觉得满意就给100分.
我现在才一个三毛裤,很穷啊.
freeia 2003-09-10
  • 打赏
  • 举报
回复
为5颗红星而奋斗!!!
freeia 2003-09-10
  • 打赏
  • 举报
回复
楼主爽快,100分!!!
我告诉你,lib要用implib改变一下格式就可以了.
implib ***.lib
因为borland 用的是omf格式,而ms用的是coff格式.如果用LoadLibrary,动态加载就不必转化了.

嘿嘿,方法告诉你了,分给我把,偶现在很穷,缺分用.
阿阌 2003-09-10
  • 打赏
  • 举报
回复
你准备用动态调用还是静态调用啊?方法不同的。你告诉我你想使用的方式,我给你代码。
csym 2003-09-10
  • 打赏
  • 举报
回复
必须有导出的,如NowCan(能量、激情、雨水、彩虹——雷雨云) 所说,在def文件里面添加:
EXPORTS
; Explicit exports can go here
Get
UserSelectCorrect
zjqyb 2003-09-10
  • 打赏
  • 举报
回复
贴出来
reallove 2003-09-10
  • 打赏
  • 举报
回复
在VC中这样做了,但还是不行。
extern "C" __declspec(dllexport) void __stdcall test(void)
叶子哟 2003-09-10
  • 打赏
  • 举报
回复
vc有三种dll
一种是规则的dll(静态的,MFC),另一种是规则的dll(动态的),还有一种是扩展的dll,不知你用的是哪一种?
而且均分是用的c语法,还是c++的语法,是否支持MFC等!
如果用的C的那种,bcb用起来没有问题,但如果不是,就很难说了(试试再说)!
一般的:
可以用隐式连接和显式连接两种方法加载
隐式:需有.h文件和导入库.lib和.dll文件(推荐)
显式:LoadLibrary,GetProcAddress,通过Dll函数指针访问函数,最后用FreeLibrary释放dll

对C的导出函数:
_declspec(dllexport) int myfunction(int n);
对C++的导出函数:
extern "C" _declspec(dllexport) int myfunction(int n);

freeia 2003-09-10
  • 打赏
  • 举报
回复
抢生意啊.

faint~~~~~~~

楼上给出的答案太绝了.分都给楼上的吧.:(
Behard 2003-09-10
  • 打赏
  • 举报
回复
看看这里:
http://www.csdn.net/develop/read_article.asp?id=18799

如果你要上面的代码 告诉我 Email,我发给你
niuzhenjun 2003-09-10
  • 打赏
  • 举报
回复
__declspec(dllimport) int a();
zjqyb 2003-09-06
  • 打赏
  • 举报
回复
在VC中 :extern "C" __declspec(dllexport) void __stdcall test(void)

在bcb: extern "C" WINAPI void test(void)
铖邑 2003-09-06
  • 打赏
  • 举报
回复
没什么区别的。
不知道你是用LoadLibrary、GetProcAddress、FreeLibrary等函数来调用呢,还是用静态编译?
typedef void (_stdcall *EntryFunc)(TApplication *, TSession *);
HINSTANCE hinst = LoadLibrary((ExePath+sexename).c_str());
EntryFunc OpenForm = (EntryFunc)GetProcAddress(hinst, "OpenForm");
OpenForm(Application, Session);
FreeLibrary(hinst);
zjqyb 2003-09-06
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2134/2134689.xml?temp=.6619532
NowCan 2003-09-06
  • 打赏
  • 举报
回复
我怎么记得VC里需要写一个DEF文件加到工程里啊。
内容很简单
EXPORTS
FUNC1
FUNC2
..
FUNCN
都是函数名称

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧