dll怎样用封装form,并且只用一个函数调用?并且怎么才能动态调用时不出错?我知道在dll中uses 了form后,可以把要调用的form放在一起,但是调用方怎么样才能知道所调用的是哪个form,不知道是不是可以对form进行编号来完成.以前编写dll时发生:没有找到dll切入点.不知道这是怎么回事?
我知道可能会用到
DLL_PROCESS_ATTACH :
DLL_PROCESS_DETACH :
DLL_THREAD_ATTACH :
DLL_THREAD_DETACH :
但不知怎么用.请高手帮忙了
我知道可能会用到
DLL_PROCESS_ATTACH :
DLL_PROCESS_DETACH :
DLL_THREAD_ATTACH :
DLL_THREAD_DETACH :
但不知怎么用.请高手帮忙了
解决方案 »
- 子窗体最大化问题
- sqlserver中如何对一Bit型字段取反
- 关于索引大家讨论一下
- 使用SHFileOperation复制文件,不想文件进度窗口老是出现在最前面,有没办法解决?
- 我实在是没办法了!!idTcpServer/Client之间相互通不了信,报"Connection Closed Gracefully"的错,大家都来帮忙看一下代码!
- 如何从一个Query中进一步搜索
- UNICODE的问题!?
- Tfield.OnGetData 与 Tfield.OnSetData 事件用法,希望详细一些
- 7月23~25日将举办Delphi认证考前培训班,参加本次培训的学员将有资格参加随后举行的Delphi认证考试。
- 这是为什么?请进!
- 在SQL中判断某日是星期几
- 我靠!谁用我的ID发了这么个帖子....
var
DllProc : Pointer;
Begin
Application := PApplication;
FormName := UpperCase(FormName); If FormName = 'custodyCent' Then
Begin
if Not Assigned(custodyCent) Then
custodyCent := TcustodyCent.Create(PForm);
End;
End;Procedure DllUnloadProc(Reason : Integer); register;
Begin
if Reason = DLL_PROCESS_DETACH then
Begin
if Assigned(custodyCent) Then
custodyCent.Free;
End;
End;Exports
LoadWaveDll;begin
SaveApplication := Application;
DllName := 'Wavedll';
DLLProc := @DllUnLoadProc;
end.
Var
ProcAddr : FarProc;
BaseDllShow : TDllShow;
Form : TForm;
Begin
if WaveDLLHandle = 0 Then
WaveDLLHandle := LoadLibrary(PChar(DllName+'.dll'));
ProcAddr := GetProcAddress(WaveDLLhandle,'LoadWaveDll');
if ProcAddr <> nil then
Begin
BaseDllShow := ProcAddr;
BaseDllShow(Application,self,FormName);
end;
End;procedure TForm1.Button1Click(Sender: TObject);
begin
LoadWaveDLL(Sender,'custodycent','wave');
end;dll是生成了,但是却没有调用成功,也没有报错
本章内容:
• 究竟什么是D L L
• 静态链接与动态链接
• 为什么使用D L L
• 创建和使用D L L
• 显示D L L中的模式窗体
• 在D e l p h i应用程序中使用D L L
• DLL的入口和出口函数
• DLL中的异常
• 回调函数
• 从D L L中调用回调函数
• 在不同的过程中共享D L L数据
• 引出D L L中的对象
本章讨论了Wi n 3 2动态链接库,也就是D L L。D L L是用来编写Wi n d o w s应用程序的关键组成部分。
本章讨论了使用和创建D L L的几个方面,它给出了D L L怎样工作的概述并讨论了怎样创建和使用D L L,
你将学会怎样调入D L L和链接由它们引出的过程和函数的不同方法。本章还包括回调函数的使用并举
例说明在不同调用进程中如何实现共享数据。<Delphi5开发人员指南>