• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

一个问题,请帮忙

_guanri 2001-06-06 03:12:00
extern "C"
{
class __declspec(dllexport)test
{
public:
int x;
int y;
test();
~test();
void wtest(int z);
private :
void do_wtest(int w);

};
}这是在vc中用的头文件
extern "C"
{
test::test(){x=0;y=0;};
test::~test(){};
void test::wtest(int z)
{
do_wtest(z);
};
void test::do_wtest(int w)
{
x=w;
};
}这是在vc中用的源文件,在vc中生成wdll.dll
extern "C"
{
class __declspec(dllimport) test
{
public:
int x;
int y;
test();
~test();
void wtest(int z);
private :
void do_wtest(int w);

};
}这是在bcb中用的头文件
#include <vcl.h>
#pragma hdrstop
#include "wdll.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
test td;
td.wtest(34);
}这是BCB的源文件
这是在BCB中用静态调用VC产生的DLL
出错位
[Linker Error] Unresolved external 'test::~test()' referenced from H:\VC\WDLL\UNIT1.OBJ
[Linker Error] Unresolved external 'test::test()' referenced from H:\VC\WDLL\UNIT1.OBJ
[Linker Error] Unresolved external 'test::wtest(int)' referenced from H:\VC\WDLL\UNIT1.OBJ
所需的WDLL.LIB 我也手工生成
请大家帮忙
...全文
66 点赞 收藏 4
写回复
4 条回复
_guanri 2001年06月06日
什么c++呀,什么风装呀,什么继承呀,全让她们滚一边吧,以后再也不想类了.我恨死发明c++的人了
回复 点赞
holyfire 2001年06月06日
BCB在DLL中使用VC的导入类不简单,因为要使用类就要用CPP命名方式,这会使用名字分裂,而VC和BCB的名字分裂是不一样的。

提供一篇文章,专门将如何解决这个问题的。
http://www.bcbdev.com/articles/vcdll2.htm
回复 点赞
_guanri 2001年06月06日
加了呀,class __declspec(dllimport) test
回复 点赞
xycleo 2001年06月06日
你还没加上dllImport的说明吧!!!
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2564

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告