用显示调用 tomrs=function(cmd:pchar):integer;stdcall; ...var dllh: Thandle; OmrS: Tomrs; begin dllh:=loadlibrary('a50usb.dll'); try if dllh=0 then exit; @omrs:=getprocaddress(dllh,'omrs'); if assigned(@omrs) then omrs(...); finally freelibrary(dllh); end;
厂家给的DLLfunction OmrS(cmd:pchar):integer;stdcall;external 'a50usb.dll';
function OmrG(buf:pchar):integer;stdcall;external 'a50usb.dll';
……………………………… 为什么我一调用OmrS(cmd);
就会出现 应用程序正常初始化(0xc0000142)失败 这个问题。 (a50usb.dll 是厂家给的)
高手你说的那个dll装载失败是怎么回事,能不能详细说说!谢谢高手!
还有怎么装DLL?
我只知道这么调用:
function OmrS(cmd:pchar):integer;stdcall;external 'a50usb.dll';
function OmrG(buf:pchar):integer;stdcall;external 'a50usb.dll'; 请教高手!
你把你的dll放在exe文件夹下试试
高手救救我啊!
高手教教我怎样在不累计USB设备情况下可以使程序可以运行
去CSDN中找一个动态调用的例子吧.
tomrs=function(cmd:pchar):integer;stdcall;
...var
dllh: Thandle;
OmrS: Tomrs;
begin
dllh:=loadlibrary('a50usb.dll');
try
if dllh=0 then exit;
@omrs:=getprocaddress(dllh,'omrs');
if assigned(@omrs) then omrs(...);
finally
freelibrary(dllh);
end;
end;
var
modulehandle:Thandle;OmrS :Function OmrS(cmd:pchar):integer;stdcall;
OmrG :function (buf:pchar):integer;stdcall;在FORMCREATE里begin
ModuleHandle:=LOADLIBRARY('a50usb.dll');
@OmrS:=GetProcAddress(ModuleHandle, 'OmrS');
@OmrG:=GetProcAddress(ModuleHandle, 'OmrG');
end;在退出的时候FREELIBRARY(MODULEHANDLE);虽然看起来没什么两样... 不过,LODLIBRARY后再调用应该没问题吧... 如果还有问题,那应该是DLL有问题才是
现在由于某种原因要重新写(以前写的那个人走了,想问也问不了,唉!郁闷!)。所以特来CSDN请教各位高手!
谢谢 yuqianyi1974 !