Delphi中调用VC中的类.在线等...急!解决立刻给分!

wyh2002 2003-10-18 10:43:02
请问在Delphi中怎么调用VC的DLL中的类,最好给我一个例子.先谢了!
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seahilly 2003-10-18
  • 打赏
  • 举报
回复
转我对几个贴的回答,可以回答你的问题:
3、★★★★★Delphi编程经验总结★★★★★
在本贴中的“高速公路”实现中,涉及到了如何Delphi中调用Delhi Dll中的类的问题,在此之前,我也做过Delphi调用VC++中类(在DLL中)的实现,实现方法完全相同,你可以参考以下。
Seahilly 2003-10-18
  • 打赏
  • 举报
回复
转我对几个贴的回答,可以回答你的问题:
2、回答:vc写的dll在delphi中调用,(数据类型的难题)
Seahilly 2003-10-18
  • 打赏
  • 举报
回复
转我对几个贴的回答,可以回答你的问题:
1、回答:Delphi可以使用VC做的DLL还原的LIB吗?
Delphi可以直接连接VC++的DLL,做法如下:
1、在VC++的.cpp文件中说明输出函数的名字、类型、调用方式、定义函数执行体:
extern "C" __declspec(dllexport) void VCvoidfunction(......)
{
.......
return;
}

extern "C" __declspec(dllexport) DWORD VCdwordfunction(......)
{
.......
return ....;
}

2、在Delphi中说明,假定做一个单独的引入单元:

1)说明函数类型:
Type TVCvoidfunction=Function(......); Cdecl; //函数类型
Type TVCdwordfunction=Function(......); Cdecl; //函数类型

2)定义函数变量:
Var VCvoidfunction: TVCvoidfunction;
VCdwordfunction: TVCdwordfunction;

3、在Delphi程序中首先动态连接DLL:

DLL_Handle:=LoadLibrary(PChar(DLLPath));
DLL_Handle>0 Then //若加载成功,
Begin //则依次定位函数
Try
@VCvoidfunction :=GetProcAddress(DLL_Handle,'VCvoidfunction');
@VCdwordfunction:=GetProcAddress(DLL_Handle,'VCdwordfunction);
Except
FreeLibrary(DLL_Handle);
End
End

4、在Delphi程序中调用VC的DLL中函数:

直接使用函数名,按Delphi的要求使用。
注意,VC参数中的&对应Delphi的Var。

pankun 2003-10-18
  • 打赏
  • 举报
回复
怕有难度哦,就算你的DLL返回了类指针,你怎么调用类中的成员?
DELPHI的类机制和VC又不一样.(DELPHI调用DELPHI做的DLL中引出的类则可以)

还是做成COM方便...
wyh2002 2003-10-18
  • 打赏
  • 举报
回复
我要的是在Delphi中调用VC的类啊,能不能不用COM的,最好有例子,谢谢!
pankun 2003-10-18
  • 打赏
  • 举报
回复
如果要引用VC的DLL中的函数就同楼上一样,如果是要调用VC的类,最好还是做成COM,再用DELPHI调用.
dickeybird888 2003-10-18
  • 打赏
  • 举报
回复
给你个离子:

有一个vc下编的aaa.dll函数,声明如下:
extern __declspec(dllexport) int test(char* demo)


静态调用可以了
在implementation之前声明
function test(demo:pchar):integer;stdcall;external 'aaa.dll';

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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