程序一运行就会出现:
  应用程序正常初始化失败!
然后在点一下运行就可以正常运行了!或者单步运行也可以正常运行!
这是怎一会事啊?
怎么解决?(可不可以屏蔽掉啊?)请教各位高手!谢谢!

解决方案 »

  1.   

    有可能是delphi安装的问题。也可能是程序问题。
      

  2.   

    有,程序主要是连接一个USB外设。
    厂家给的DLLfunction OmrS(cmd:pchar):integer;stdcall;external 'a50usb.dll'; 
    function OmrG(buf:pchar):integer;stdcall;external 'a50usb.dll'; 
    ……………………………… 为什么我一调用OmrS(cmd); 
    就会出现  应用程序正常初始化(0xc0000142)失败 这个问题。  (a50usb.dll 是厂家给的) 
      

  3.   

    是你的dll装载失败,你是怎样装dll
      

  4.   

    呵呵!我是编程菜鸟不太懂。
    高手你说的那个dll装载失败是怎么回事,能不能详细说说!谢谢高手!
    还有怎么装DLL?
    我只知道这么调用:
    function OmrS(cmd:pchar):integer;stdcall;external 'a50usb.dll'; 
    function OmrG(buf:pchar):integer;stdcall;external 'a50usb.dll'; 请教高手!
      

  5.   

    有些sdk要对硬件进行初始化配置,否则装载dll会失败
      

  6.   

    你这是隐式调用,你必须保证你的dll在正确的路径,否则会加载失败。
    你把你的dll放在exe文件夹下试试
      

  7.   

    我等程序初始化完成后再去打开USB设备,有可能是你的调用的顺序问题
      

  8.   

    现在DLL已经放在EXE文件夹下了!就是出错啊
    高手救救我啊!
      

  9.   

    我现在就是想在不连接USB设备情况下运行程序啊(连接上USB设备程序没错 o(∩_∩)o...).
    高手教教我怎样在不累计USB设备情况下可以使程序可以运行
      

  10.   

    呵呵,用动态调用的吧...这样起码程序不会一起崩溃.
    去CSDN中找一个动态调用的例子吧.
      

  11.   

    我估计是你调用OmrS(cmd),就会自动找那个USB设备并初始化,找不到就会报错。想在不连接USB设备情况下运行程序, 那要检测USB是否有接入设备,有才调用。或者你跟提供DLL的厂家反映一下这个问题
      

  12.   

    用显示调用
    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;
      

  13.   

    能发份到网络硬盘让大家看看么... 多个人帮你实验下不是很好...按你的调用,还有DLL放在EXE文件夹下面,那就调用没问题...是不是DLL的问题啊 ...要不你换个方式调用...
    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有问题才是
      

  14.   

    偶十分怀疑你是不是把里面的CMD:PCHAR 传进去的是STRING
      

  15.   

    DLL是绝对没问题的!因为别人也写了个可以用(不连接USB设备时)。
    现在由于某种原因要重新写(以前写的那个人走了,想问也问不了,唉!郁闷!)。所以特来CSDN请教各位高手!
      

  16.   

    问题解决了!谢谢CSDN的各位高手!谢谢 BOB008!
    谢谢 yuqianyi1974 !