我把生成的EXE文件放到没有DELPHI环境的机器运行,会出现内存读写错误。我使用了FLASH控件,是它的原因吗?

解决方案 »

  1.   

    当然可以.如果使用到了一些DLL文件,则要把发布这些文件才行.
      

  2.   

    我没有用到DLL文件。我在装有DELPHI的其他机器上运行也是没有问题的。
      

  3.   

    :(
    设置脱离ide环境就可以了吧不解。。
      

  4.   

    TO;
    wanfustudio(雁南飞)
    具体怎么做?
      

  5.   

    你直接编译成EXE就行了.
    最笨的办法是,你在没有DELPHI的环境中运行,看系统报什么错误,会提示缺少DLL的,然后你就拷贝这个DLL到EXE目录.
    一般可能需要qtintf.dll
      

  6.   

    编译的时候去掉 选固定单元的编译, 完全编译, 然后如果用到midas, dll时, 请带着对应的dll.
      

  7.   

    并不是缺少DLL文件。错误的大意是: 某个OLE对象读取了一个内存地址
      

  8.   

    不可能的,除非是用了.net技术写的程序,又没有安装.net框架
      

  9.   

    这次把错误贴出来:
    Exception EoleSysError in modul client.exe at 0011D489 没有注册类别大家再帮帮忙。
      

  10.   

    在运行里面试一下这个命令
    regsvr32 *.dll
      

  11.   

    再次声明:我是在没有DELPHI 的环境里测试时出现上述错误,在有DELPHI的环境里是没有问题的。
    TO:lee576() 
       我在自己机器上运行了,提示:Loadlibrary("*.dll")失败,找不到指定模块。
      

  12.   

    已经另开新帖,请大家到下面接分
    http://community.csdn.net/Expert/topic/4797/4797414.xml?temp=.6578333
      

  13.   

    没装DELPHI的机器,在第一次运行MIDAS程序的时候,会给MIDAS注册,并记录下了MIDAS.DLL所在的目录。
    然装了DELPHI的机器,每次编译MIDAS程序的时候,都会为MIDAS注册。所以没装DELPHI的机器,需要为MIDAS注册,自己写一个注册程序吧,网上有很多例子
      

  14.   

    都说了
    regsvr c;\midas.dll 这里的路径视在硬盘上的位置而定
      

  15.   

    这里是用代码实现的type 
    TDllRegisterServer = function: HResult; stdcall; //FileName 是含全路径的 Midas.dll 文件名
    function RegisterMidas(FileName: string): Boolean;
    var 
    aHandle: THandle; 
    RegFunc: TDllRegisterServer; 
    begin 
    aHandle := LoadLibrary(PChar(FileName)); 
    RegFunc := GetProcAddress(aHandle, 'DllRegisterServer');
    if @RegFunc <> nil then 
    Result := RegFunc = S_OK 
    else 
    Result := False; 
    FreeLibrary(aHandle); 
    end;