用CodeGear C++ Builder 2007编写dll程序(一)
2007-10-19 22:57
246 查看
首先,谢谢老妖的www.ccrun.com,提供了很多关于用BCB写dll的例子和文章。这个一个专业的BCB网站。
其次,因为一些原因,一直没有写过dll,一般都是静态库比较多,然后都一些现成的dll。就是没有写过,所以在这里借C++Builder 2007出来之际,写写。
进入正题:
建一个dll工程先 File->New->Other->C++ Builder Projects->Dynamic Link Library,如下图
然出会出现选择dll类型的对话框
确定后,如下:
第一步,我们在File1.c实现几个函数,如下定义
extern "C" __declspec(dllexport) int __stdcall GetCount();
extern "C" __declspec(dllexport) int __stdcall GetDouble(int v);
int __stdcall GetCount()
{
return 100;
}
int __stdcall GetDouble(int v)
{
return 2*v;
}
然后编译,就可以生成firstdll.dll和firstdll.lib,在这里,我们暂时使用动态装载的方式。
第二步,建一个VCL Forms Application工程。
在unit1.cpp中,我们增加如下代码
函数类型定义
typedef int __stdcall (* FGetCount )();
typedef int __stdcall (*FGetDouble)(int v);
在主窗体增加一个按钮,并产生单击事件,并加入如下代码
FGetCount GetCount ;
FGetDouble GetDouble;
HINSTANCE dd;
dd = LoadLibrary("firstdll.dll");
GetCount = (FGetCount )GetProcAddress(dd,"GetCount");
GetDouble= (FGetDouble)GetProcAddress(dd,"GetDouble");
ShowMessage(GetCount());
ShowMessage(GetDouble(100));
FreeLibrary(dd);
如果不记得函数名,可以用VC6的depends工具查看生成的dll。然后将firstdll.dll复制到test的工程debug目录,运行再按下这个按钮,会弹出"100"和“200”两个显示消息对话框。
这样就完成了第一个dll的编写。下一步,就是使用VCL的dll和静态库。(未完,请看下一节)
其次,因为一些原因,一直没有写过dll,一般都是静态库比较多,然后都一些现成的dll。就是没有写过,所以在这里借C++Builder 2007出来之际,写写。
进入正题:
建一个dll工程先 File->New->Other->C++ Builder Projects->Dynamic Link Library,如下图
然出会出现选择dll类型的对话框
确定后,如下:
第一步,我们在File1.c实现几个函数,如下定义
extern "C" __declspec(dllexport) int __stdcall GetCount();
extern "C" __declspec(dllexport) int __stdcall GetDouble(int v);
int __stdcall GetCount()
{
return 100;
}
int __stdcall GetDouble(int v)
{
return 2*v;
}
然后编译,就可以生成firstdll.dll和firstdll.lib,在这里,我们暂时使用动态装载的方式。
第二步,建一个VCL Forms Application工程。
在unit1.cpp中,我们增加如下代码
函数类型定义
typedef int __stdcall (* FGetCount )();
typedef int __stdcall (*FGetDouble)(int v);
在主窗体增加一个按钮,并产生单击事件,并加入如下代码
FGetCount GetCount ;
FGetDouble GetDouble;
HINSTANCE dd;
dd = LoadLibrary("firstdll.dll");
GetCount = (FGetCount )GetProcAddress(dd,"GetCount");
GetDouble= (FGetDouble)GetProcAddress(dd,"GetDouble");
ShowMessage(GetCount());
ShowMessage(GetDouble(100));
FreeLibrary(dd);
如果不记得函数名,可以用VC6的depends工具查看生成的dll。然后将firstdll.dll复制到test的工程debug目录,运行再按下这个按钮,会弹出"100"和“200”两个显示消息对话框。
这样就完成了第一个dll的编写。下一步,就是使用VCL的dll和静态库。(未完,请看下一节)
相关文章推荐
- 用CodeGear C++ Builder 2007编写dll程序(二)
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)good
- 用QT在Windows下编写dll程序
- C++ 编写dll程序
- windows下如何使用QT编写dll程序
- Windows下如何使用QT编写dll程序
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- C#调用C++程序编写的dll
- 用C++ Builder编写Tray程序
- vs2008发布c编写的dll程序 初始化失败-0xc0150002
- 一步一步SharePoint 2007之三十:实现文档Event Handler(2)——编写Handler程序
- 编写DLL程序的步骤
- 用QT在Windows下编写dll程序
- Win7下使用VS2013编写的ActvieX在XP下注册提示:LoadLibrary("XXX.dll")失败-找不到指定的程序
- Windows下如何使用QT编写dll程序
- CodeGear C++ Builder 2007 弱弱的GuideLine,VCL Designer的画蛇添足的功能
- 国庆期间试用CodeGear C++ Builder 2007的感受
- 编写DLL程序方法(二)
- 一步一步SharePoint 2007之三十:实现文档Event Handler(2)——编写Handler程序
- VS使用QT编写dll程序