vc++调用bcb的dll(一)

bcb6中:

extern "C" __declspec(dllexport) void __stdcall ShowF(void);

void _export _stdcall ShowF(void)
{
    ShowMessage("kkkkkkkkkkkkk");
}

1、用extern "C"修饰C++Builder导出的DLL函数。如:extern "C" __declspec(dllexport) int aFunc(int a);
2、用C++Builder的impdef工具生成DLL对应的def文件。如:impdef xxx.def xxx.dll。
3、用记事本打开xxx.def文件,删去每个函数名前的"_"。如原来的def文件为:vc++中:

LIBRARY     XXX.DLL
 
EXPORTS
     ___CPPdebugHook                @2   ; ___CPPdebugHook
     _aFunc                         @1   ; _aFunc

 

 


那么删除后就变成了:

LIBRARY     XXX.DLL
 
EXPORTS
     __CPPdebugHook                @2   ; ___CPPdebugHook
     aFunc                         @1   ; _aFunc


 


4、用VC的LIB工具,根据上面的def文件生成lib文件。如:LIB /DEF:XXX.def。生成lib文件之后,VC便可以使用这个lib文件了。

两种工具开发的DLL在相互使用的时候,主要的问题便是lib库的问题,能把这一问题解决好行了。

 

 void (*ShowF)(void);
 HINSTANCE hInst = LoadLibrary(_T("C:\\dlllllllllllllllllllllllllllll\\dllllllll\\dllllllll\\Debug\\myDLL.dll"));
 if (hInst == NULL)
 {
  int xx = GetLastError();
  FreeLibrary(hInst);
  system("pause");
  return;
 }
 (FARPROC &)ShowF=GetProcAddress(hInst,"ShowF");
 ShowF();
 FreeLibrary(hInst);
 OnOK();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值