Dll是“动态连接库”,是在运行时被调用,如果编译时被调用就失去代码重用的意义了!

解决方案 »

  1.   

    ???
    DLL文件也编译到程序中去?那就不是动态连接了!
      

  2.   

    在生成安装包时可以把该dll文件包括进去
      

  3.   

    没必要吧。
    将DLL文件拷贝到EXE文件末尾,执行时再生成临时的DLL(从EXE文件末尾分离开来)
      

  4.   

    不可能,去把dll的原代码获得,然后在你自己的程序中实现,呵呵
      

  5.   

    因为这个DLL文件里包含了所有的操作!如果用户有了这个DLL就可以实现 所有的操作了!
      

  6.   

    可以在写代码时就与程序一起自动编辑生成dll,而不是把dll编辑进程序中去.
      

  7.   

    好象不行啊,我是这样做的:1. 用VS IDE 打开->文件 打开EXE。2. 添加资源,添加DLL。DLL是包含了,可以运行通不过。还有一个办法是象字符串表一样添加到资源包,不过我没试过。如果你解决了这个问题,希望能够告诉我[email protected]
      

  8.   

    在程序中调用DLL文件,在制作安装包的时候安装文件生成程序会直接将这个DLL文件集成到安装包中。如果将DLL文件中有用的程序编译到程序中,就失去了DLL中这个动态的意义了。
      

  9.   

    用ildasm.exe工具反汇编DLL文件,生成IL代码文件,在将这个文件加入到
    你的工程中。
      

  10.   

    在程序中调用DLL文件,在制作安装包的时候安装文件生成程序会直接将这个DLL文件集成到安装包中。如果将DLL文件中有用的程序编译到程序中,就失去了DLL中这个动态的意义了。
      

  11.   

    如果你用的dll也是.net framework写的话,可以把它作为资源编译到程序中,在程序运行的时候把它读出来。再通过reflection调 用dll。下面的代码是用来支持xp的menifest的代码片断。你也可以选择不把它写到磁盘上,直接在内存中使用。
    public ManifestMaker(string sNameSpace)
    { if (File.Exists((Application.ExecutablePath + ".manifest")) != true)
    {
    Assembly ThisAssembly;
    ThisAssembly = Assembly.GetAssembly(this.GetType()); StreamReader read = new StreamReader(ThisAssembly.GetManifestResourceStream(sNameSpace + ".Manifest.txt"));
    StreamWriter write;
    write = File.CreateText(Application.ExecutablePath + ".manifest"); while (read.Peek() != -1)
    {
    String x;
    x = read.ReadLine();
    write.WriteLine(x);
    }
    read.Close();
    write.Close();

    System.Diagnostics.Process.Start(Application.ExecutablePath);
    bRestarting = true;
    }
    }