用BCB写软件的界面,调用VC的dll
来源:百度文库 编辑:神马文学网 时间:2024/05/27 11:09:37
先用VC++写dll:
---------------------------------------------
代码:
extern "C"{
int __declspec (dllexport)add (int a,int b)
{
return a+b;
}
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
return TRUE;
}
生成RELEASE版本dll文件和lib文件(这里我们在BCB中不用VC++的头文件,lib没有什么用处)
dll文件名:vcplusplusdll.dll
-----------------------------------------------------------------------
打开BCB,在默认新建的工程中放三个编辑框,用BCB默认添加的3个成员名:TEdit1,TEdit2,TEdit3.再添加一个按钮,更改caption为:OK。
在默认的TForm1类声明头文件中的public部分或private部分加入3个成员变量,int a,b,c。
为TEdit1,TEdit2 2个控件添加onchange响应函数,命名为onchange1,onchange2。
相关代码:
void __fastcall TForm1::change1(TObject *Sender)
{
a=StrToInt(Edit1->Text);
}
void __fastcall TForm1::change2(TObject *Sender)
{
b=StrToInt(Edit2->Text);
}
在Unit1.cpp文件中,TForm1的类函数的实现部分前面,添加一下全局变量:
HINSTANCE handle; //装载dll的模块句柄
FARPROC lpFarProc; //指向dll模块中函数地址的指针
int (*lpaddit)(int,int); //自己声明的一个和dll中的函数一样功能的函数原型
下面双击刚才添加的“OK”,BCB生成响应函数:在函数体内加入:
//load library
handle=LoadLibrary("vcplusplusdll.dll");
//get ptr point to the "ADD" function 's address
lpFarProc = GetProcAddress(handle,"add");
lpaddit = (int(_cdecl *)(int, int))lpFarProc; //指针类型转换
c=lpaddit(a,b); //使用addit函数
FreeLibrary(handle);
AnsiString str;
str=IntToStr(c);
Edit3->Text=str;
把VC++中的得到的dll拷贝到刚才bcb的工程的目录下,运行程序。通过~
---------------------------------------------
代码:
extern "C"{
int __declspec (dllexport)add (int a,int b)
{
return a+b;
}
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
return TRUE;
}
生成RELEASE版本dll文件和lib文件(这里我们在BCB中不用VC++的头文件,lib没有什么用处)
dll文件名:vcplusplusdll.dll
-----------------------------------------------------------------------
打开BCB,在默认新建的工程中放三个编辑框,用BCB默认添加的3个成员名:TEdit1,TEdit2,TEdit3.再添加一个按钮,更改caption为:OK。
在默认的TForm1类声明头文件中的public部分或private部分加入3个成员变量,int a,b,c。
为TEdit1,TEdit2 2个控件添加onchange响应函数,命名为onchange1,onchange2。
相关代码:
void __fastcall TForm1::change1(TObject *Sender)
{
a=StrToInt(Edit1->Text);
}
void __fastcall TForm1::change2(TObject *Sender)
{
b=StrToInt(Edit2->Text);
}
在Unit1.cpp文件中,TForm1的类函数的实现部分前面,添加一下全局变量:
HINSTANCE handle; //装载dll的模块句柄
FARPROC lpFarProc; //指向dll模块中函数地址的指针
int (*lpaddit)(int,int); //自己声明的一个和dll中的函数一样功能的函数原型
下面双击刚才添加的“OK”,BCB生成响应函数:在函数体内加入:
//load library
handle=LoadLibrary("vcplusplusdll.dll");
//get ptr point to the "ADD" function 's address
lpFarProc = GetProcAddress(handle,"add");
lpaddit = (int(_cdecl *)(int, int))lpFarProc; //指针类型转换
c=lpaddit(a,b); //使用addit函数
FreeLibrary(handle);
AnsiString str;
str=IntToStr(c);
Edit3->Text=str;
把VC++中的得到的dll拷贝到刚才bcb的工程的目录下,运行程序。通过~
用BCB写软件的界面,调用VC的dll
用BCB写软件的界面,调用VC的dll
让你的软件界面更漂亮 [VC]
在VB应用程序中调用VC环境下开发的DLL
C#调用C++编写的COM DLL
vc中如何调用webservice? VC/MFC / 进程/线程/DLL
关于java调用window DLL里的函数的总结
VB调用.NET DLL(一) - skila的日志 - 网易博客
C#调用DLL的方法 - 51CTO.COM
在C#工程中调用C++的DLL - Learning - 新言云语
在C#工程中调用C++的DLL
### 微软亚洲技术中心的高手们,请解决:如何在VB中调用VC++写的VXD? ### -...
C++写的DLL,传结构给VB用
VC实现串行通信的动态链接库(DLL)
VC实现串行通信的动态链接库(DLL)A
让你的软件界面更漂亮
vc中如何调用webservice? VC/MFC / 进程/线程/DLL - CSDN社...
如何写 C dll 和调用它们从 Visual Basic
vc中调用Com组件的方法详解
基础:VC调用JAVA方法的一个注意问题
vc中调用Com组件的方法详解
调用网易信纸写日志的三板斧
软件界面的美观性及软件的易用性
C#程序调用非托管C++ DLL文件的方法 - Chase的技术博客 - 博客园