help me string to thandle(100分)

  • 主题发起人 主题发起人 shine_yzl
  • 开始时间 开始时间
S

shine_yzl

Unregistered / Unconfirmed
GUEST, unregistred user!
简单的问题,能够将string 转换 thandle
if DLLHandle1 <> 0 then
begin
@DLLSub := GetProcAddress(DLLHandle1, 'HRB');
if Assigned(DLLSub) then
begin
DLLForm := DLLSub(Application, Screen,FNM2);
end ELSE SHOWMESSAGE('ERROR');
end;
实现
if ?????('DLLHandle1') <> 0 then
begin
@DLLSub := GetProcAddress(?????('DLLHandle1'), 'HRB');
if Assigned(DLLSub) then
begin
DLLForm := DLLSub(Application, Screen,FNM2);
end ELSE SHOWMESSAGE('ERROR');
end;
 
先建立一个TStrings
var
s: TStrings;
hTemp;
begin
s := TStringList.Create;
try
//if ?????('DLLHandle1') <> 0 then
if (s.Value['DLLHandle1'] = '0') or (s.Value['DLLHandle1'] = '') then
begin
@DLLSub := GetProcAddress(THandle(StrToInt(s.Value['DLLHandle1'])), 'HRB');
if Assigned(DLLSub) then
begin
DLLForm := DLLSub(Application, Screen,FNM2);
end ELSE SHOWMESSAGE('ERROR');
end;
finally
s.Free;
end;
end;


从你的代码上看
这个
Strings应该是个全局的
LoadLiraray之前就应该创建它
适当的修改一下吧
 
提示没有定义value??/
 
次方法不行
 
应该是可以没有搞懂全局变量的问题
 
看你的需求应该是把一系列查件进行读入
读入了以后调用里面的函数
如果是那样的话,应该没有问题
 
还有另外一个方法
你定义一个结构
TDLLPlug = record
DLLName :String;
DLLHandle : THandle;
end;

然后定义一个类通过TList类型对他们进行管理
TDLLList = class(TComponent)
private
FDLLList = TList;
public
function GetDLLByName.........
function DeleteDLL.........
function InsertDLL.................
.
.
.
.
end;
 
可否给详细
 
这样就很好解决了
 

Similar threads

后退
顶部