rt.急需 谢。
解决方案 »
- Delphi 写得OCX在VC++中无法调用?
- 哪位兄弟姐妹,知道 RzShellTree 怎么用吗?
- 请问一个activex的问题.为什么activxform工程重新打开之后web deploy菜单就变成灰的.
- COM+ 的异常问题,请猛禽兄、太可怕兄、苹果兄、小小兄……等各位高人进来看看!
- 要求imgage自动出现水平或垂直滚动条?
- 技术交流·如何在DBGrid设置背景图片 // Adai Lee
- 请大家帮个忙,我为此已好几天不思茶饭了:(
- 在DELPHI中单元之间是否可以继承他们的全局变量(不是公有段)?
- 关于MDI窗口的三个问题,请高手解答!
- 为什么delphi的控件这么难安装?
- 如何用语句动态设置DBGrid控件的标题文字,不然显示的是字段,我想显示成中文
- 请教一个小问题!
VC的函数原型为:int check(char* gf, char** xf); 文件名为:Check.dll
delphi的为:function check(GF: PChar; var XF: PChar): Integer; stdcall; external 'Check.dll';函数名的大小写在翻译的时候最好保持不变。
然后就可以按标准的函数一样调用了
不需要将此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。(本回复来自 http://expert.csdn.net/Expert/topic/2237/2237804.xml?temp=.23164)