当前位置:C++技术网 > 资讯 > VS生成的.exe文件在别的电脑上不能用

VS生成的.exe文件在别的电脑上不能用

更新时间:2016-05-13 22:36:48浏览次数:1+次

  用vs生成了一个可执行文件.exe,在自己电脑上用的好好的,无论是在vs中执行源代码还是直接打开.exe文件,都没有任何错误,但是换到别人的电脑上就无法正常运行了。

  生成的.exe文件是用C#写了一个窗口,在C#中调用了一个C++生成的dll。在别人电脑上运行.exe文件时,主要出现两个错误:“无法加载*.dll:找不到指定的模块”和“试图加载格式不正确的程序”。

 首先解释下第一个问题,“无法加载*.dll:找不到指定的模块”很明显是C#中调用的dll在运行的电脑上找不到,这就需要把程序中调用的dll与.exe文件放在同一个目录下,并且不能在程序中把dll的路径写成绝对路径。如果把dll文件放到了.exe文件所在的目录下,还提示这个错误,那就可能是没有把dll文件调用的其他dll文件放到.exe文件所在的目录下。当然,不在程序中修改调用文件的路径,不把其他dll文件放到.exe目录下,可执行文件可能会正常执行,这种事情只会发生在,别人的电脑和你的电脑在很多配置,文件放置位置完全一致的情况下。

  第二个问题,“试图加载格式不正确的程序”。C#程序生成的exe应该于dll生成的平台一致,比如,我程序中调用的dll生成的平台是win32,所以C#程序的生成平台选择了x86,还有就是C#程序的目标平台也选择x86,这样就解决了这个问题。在C#项目右键-》属性-》生成-》目标平台,修改C#程序的生成平台。