我已经使用输出配置管理器设置构建了一个 cpp dll,如快照所示
.
它构建成功并创建了 dll。然后为了使用它,我编写了包含 dll 的 ac# 项目,如下所示
[System.Security.SuppressUnmanagedCodeSecurity]
[DllImport(@"somePath\ImgProcessorTrial.dll", EntryPoint = "ImgProc")]
之后,我使用如图所示的配置构建它
当我尝试运行此应用程序时,我在控制台中得到以下输出。
BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
之后,当我更改构建配置并尝试再次构建它时,cpp 项目不会构建并给出很多类型的错误,如下所示。
unresolved external symbol for all functions of leptonica library
这个特殊的库 leptonica 和所有必要的库都是在 64 位机器上单独构建的。当我尝试更改 c# 项目的配置时,我得到了异常
DLLNotFoundException
我在项目中所做的是调用 dll 函数来读取图像并对其进行操作。我认为这与我要读取的图像格式有关。所以我尝试使用 .jpeg 和 .tif 运行应用程序但始终具有相同的输出。我在 64 位机器上的 Visual Studio 2013 和框架 3.5 上执行所有这些操作。BadImageFormatException 的确切含义是什么以及如何解决它?是代码问题还是架构问题?