BCB编写DLL终极手册

一. 编写DLL

File/New/Dll 生成Dll的向导,然后可以添加导出函数和导出类

导出函数:extern "C" __declspec(dllexport) ExportType FunctionName(Parameter)

导出类:class __declspec(dllexport) ExportType ClassName{...}

例子:(说明:只是生成了一个DLL.dll )

#include "DllForm.h" // TDllFrm 定义
USERES("Dll.res");
USEFORM("DllForm.cpp", DllFrm);
class __declspec(dllexport) __stdcall MyDllClass { //导出类
public:
MyDllClass();
void CreateAForm();
TDllFrm* DllMyForm;
};
TDllFrm* DllMyForm2;
extern "C" __declspec(dllexport) __stdcall void CreateFromFunct();//导出函数
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
//---------------------------------------------------------------------------
MyDllClass::MyDllClass()
{
}
void MyDllClass::CreateAForm()
{
DllMyForm = new TDllFrm(Application);
DllMyForm->Show();
}
//---------------------------------------------------------------------------
void __stdcall CreateFromFunct()
{
DllMyForm2 = new TDllFrm(Application);
DllMyForm2->Show();
}

二. 静态调用 DLL

使用 $BCB path\Bin\implib.exe 生成 Lib 文件,加入到工程文件中

将该文件拷贝到当前目录,使用 implib MyDll.lib MyDll.dll 生成

// Unit1.h // TForm1 定义
#include "DllForm.h" // TDllFrm 定义
//---------------------------------------------------------------------------
__declspec(dllimport) class __stdcall MyDllClass {
public:
MyDllClass();
void CreateAForm();
TDllFrm* DllMyForm;
};
extern "C" __declspec(dllimport) __stdcall void CreateFromFunct();
class TForm1 : public TForm{...}
// Unit1.cpp // TForm1 实现
void __fastcall TForm1::Button1Click(TObject *Sender)
{ // 导出类实现,导出类只能使用静态方式调用
DllClass = new MyDllClass();
DllClass->CreateAForm();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ // 导出函数实现
CreateFromFunct();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete DllClass;
}

时间: 2025-01-02 15:05:14

BCB编写DLL终极手册的相关文章

BCB 编写 DLL 终极手册

一. 编写 DLL  File/New/Dll 生成 Dll 的向导,然后可以添加导出函数和导出类  导出函数:extern "C" __declspec(dllexport) ExportType FunctionName(Parameter)  导出类:class __declspec(dllexport) ExportType ClassName{...}  例子:(说明:只是生成了一个 DLL.dll ) #include "DllForm.h"  // T

java应用端RTSP服务器?谁有.dll和手册?或则谁有.jar和手册?

问题描述 java应用端RTSP服务器?谁有.dll和手册?或则谁有.jar和手册? 最近小弟在做流媒体,BOSS说在java应用端做个RTSP的服务器.头会接触,不知道各位有没有谁做过这玩意.在网上查找资料貌似没发现用java做的.java博大精深,总有个把子解决办法吧???所以,在这看看有没有共享资源的,如有.dll或则.jar还望共享下(没对应的手册或者基本的使用文档的也就算了). 解决方案 Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于

c语言-我用C编写dll截取文本文件内容并返还回但是无法获得文件内容

问题描述 我用C编写dll截取文本文件内容并返还回但是无法获得文件内容 #include #define MAXLEN 16384 FILE *f; long offset=12345; long len=678; char str[MAXLEN]; void main(int *p1,int *p2,char *msg,char *str1[MAXLEN]) { //char *msg="D:WisePOM_baserawsitedata20150211001@20150211165316.t

C++编写DLL动态链接库的步骤与实现方法_C 语言

本文实例讲述了C++编写DLL动态链接库的步骤与实现方法.分享给大家供大家参考,具体如下: 在写C++程序时,时常需要将一个class写成DLL,供客户端程序调用.这样的DLL可以导出整个class,也可以导出这个class的某个方法. 一.导出整个class 方法很简单,只需要在类的头文件中class和类名之间加上_declspec(dllexport),同时在另外一份提供给客户端调用程序使用的类的头文件中class和类名之间加上_declspec(dllimport).为了能让客户端程序和D

c语言编写dll为postgresql添加自定义函数

问题描述 c语言编写dll为postgresql添加自定义函数 c语言编写dll为postgresql添加自定义函数,编译dll前,需要添加哪些路径呢??pg是64位的~~~ 解决方案 http://blog.csdn.net/iihero/article/details/8218753 解决方案二: 编译过程 要注意的是编译过程,需要添加头文件路径,lib路径,bin路径,以完成编译,这个include加了 lib路径也加了 附加依赖项加的postgres.lib ,编译出来的dll,放到PG

vb.net下 编写.DLL的问题

问题描述 我想在VB.NET下编写.DLL之前从未写过.DLL有没有相关的资料希望能介绍一下谢了! 解决方案 解决方案二:写出来的dll只能被.net用,不好用啊解决方案三:我试着简单的写了一个在VB.NET下的DLL命名为A.DLL,写了两个函数,没有参数ImportsSystem.Runtime.InteropServices<ComClass()>PublicClassClassAPublicFunctionFA()Asstring'函数过程EndFunctionPublicFuncti

Java Jni调用并编写dll详细教程

使用JNI,需要为C\C++生成JAVA调用约定头文件,并对标准windows DLL源码进行适当修改.以下以一个简单的例子演示整个过程. 环境:win7 64位操作系统,JDK1.7 64位,vs2010(安装x64编译支持). 一,编写native声明的类    代码如下 复制代码 package com.ninecmd;   public class MyClass { static { System.loadLibrary("jnidll"); } public native

通过VB结构数组输入数据VC编写DLL实现图形文件

前言 太多的例子讲如何如何实现VC编写动态链接库,VB中声明后使用,但没有一个好的文章来深入探讨这个问题,本文负责解决此类问题. 1.一般情况 VB中定义为: Private Declare Function FuncFoo Lib "MyStDll.DLL" _ (ByVal lParam1 As Long, ByVal lParam2 As Long) As Long VC中定义为: UINT WINAPI FuncFoo(UINT lParam1, UINT lParam2);

C#编写DLL文件如何显示参数和返回的说明信息

问题描述 最近用C#编写的dll文件,请教大家如何在自己的函数写上说明供别人很清楚赋值.例如:下面写的代码:publicstringGetXXCodeToXXName(stringiFX){stringstrXXu="";if(iFX=="0"){strXXu="正相序";}if(iFX=="1"){strXXu="逆相序";}returnstrXXu;}1)想描述该函数是干啥用的?2)该入口参数范围值3)