我有一个代码示例,应该检测我的canon 550d数码相机,这样我就可以通过电脑控制相机。 我刚刚下载从这里源文件:为什么我会变得badimagexception?
我在Visual Studio 2012专业版中创建一个新的项目;我的电脑运行Windows 8 64位。 我添加了所有.cs文件,并且还复制了我在注册后从佳能网站下载的所有dll文件。
我第一次运行该程序并单击连接按钮时,发现一个DLL丢失的异常。由于无法添加引用的dll,因此我将它们复制到Debug目录。
缺少DLL是PRSDK.dll,所以我找到并下载了DLL,并将其复制。
现在,当我点击连接按钮,我得到一个不同的异常:
BadImageFormatException:试图加载程序格式不正确。 (异常来自HRESULT:0x8007000B)
唯一的例外是在文件Camera.cs,就行了:
err = prAPI.PR_StartSDK();
我用Google搜索这个异常,并发现,一些人已经改变了项目平台和目标x86,所以我尝试了它 - 我尝试将它更改为x86,x64,AnyCpu,一切,但它没有帮助。
也许PRSDK.dll文件是旧的,不能在Windows 8中使用?
这是我的SkyDrive中的项目/解决方案的链接,如果有人可以下载它并尝试在他的机器上运行它并找到解决方案?
https://skydrive.live.com/redir?resid=EB1C71C44C3976D5!201&authkey=!AErpIgyllPAgH9w
称为项目:Canon_Camera_Control
这很搞笑。对自己不要下载他的解决方案并看着dll感到羞耻。偶尔我会得到下载的mp3,这些mp3实际上是带有mp3扩展名的404页面;从未在dll下载中看到它。 :D(虽然,有点蹩脚的.net,它不区分“试图加载这个dll,但它是错误的格式”,vs“试图加载这个DLL,你给我什么废话,这是不是甚至没有DLL!“) – neminem 2013-05-02 18:08:24
Carko哪些文件不是.dll?我在PRSDK.dll和DPPDLL.dll上做了属性,例如这两个dll文件,我在属性中看到:应用程序扩展名(.dll)是否可以请你指定哪些文件不是.dll我的意思是不是真的dll,你是怎么做到的设法发现他们不是DLL,所以我会知道在未来做到这一点? – 2013-05-02 18:10:11
Carko你的意思是这两个文件是不是真的DLL? PRLIB.dll和PRSDK.dll – 2013-05-02 18:11:27