C# 安装C++ DLL的C应用程序 我制作了一个小的32位C应用程序,它将C++的DLL文件从其资源安装到HD的文件夹中,并带有下面的C代码。 File.WriteAllBytes(folder + @"\test.dll", Properties.Resources.testDll);

C# 安装C++ DLL的C应用程序 我制作了一个小的32位C应用程序,它将C++的DLL文件从其资源安装到HD的文件夹中,并带有下面的C代码。 File.WriteAllBytes(folder + @"\test.dll", Properties.Resources.testDll);,c#,c++,dll,resources,32bit-64bit,C#,C++,Dll,Resources,32bit 64bit,它的工作原理与预期的一样,但是当我使用dll时,它会部分工作,然后崩溃,但是如果我用我从一开始就添加到C项目资源中的HD的dll替换32位C应用程序安装的dll,那么它就会全部工作 为什么??是因为C安装程序是32位的,而通过资源安装的DLL是64位的吗 知道32/64位资源如何工作的人 在这方面,Morgan程序的位应该是无关的,因为您所做的只是将一些字节写入磁盘上的文件。无论它是DLL、BMP还是HTML页面都不重要。我怀疑资源中的DLL不知何故已损坏。您是否对原始文件和写入磁盘的文件进行了

它的工作原理与预期的一样,但是当我使用dll时,它会部分工作,然后崩溃,但是如果我用我从一开始就添加到C项目资源中的HD的dll替换32位C应用程序安装的dll,那么它就会全部工作

为什么??是因为C安装程序是32位的,而通过资源安装的DLL是64位的吗

知道32/64位资源如何工作的人


在这方面,Morgan

程序的位应该是无关的,因为您所做的只是将一些字节写入磁盘上的文件。无论它是DLL、BMP还是HTML页面都不重要。我怀疑资源中的DLL不知何故已损坏。您是否对原始文件和写入磁盘的文件进行了哈希处理,或者在十六进制编辑器中对它们进行了比较?如果它们是相同的,没有理由一个崩溃,另一个不崩溃。在这个问题上没有面包屑,发布的代码应该可以工作。然而,当这段代码运行时,可能并不缺少痛苦。UAC很难阻止程序在verboten文件夹(如c:\program files)中写入文件,这是安装程序的正常位置。更不用说用户的反恶意软件会对不知从何处出现的可执行文件感到兴奋。该文件被隔离的几率为非零,当程序试图使用它时。不要这样做,请使用setup.exe。我现在注意到,根据Windows 7文件属性,文件大小为1320960字节,变为1321472字节。我最终使用了Inno setup 5,解决了我的问题。这很容易学。