【发布时间】:2013-03-12 14:00:03
【问题描述】:
我需要在 Silverlight 5 项目中使用我自己的非托管 C++ dll。
因为我可以使用 dllImport 来使用它,即
[DllImport(@"D:\myLib\Debug\myLib.dll")]
static extern int add(IntPtr ptr);
当我在 DllImport 中提到了一条绝对路径时,它运行良好。但我的问题是,我想使用相对路径。
因为我需要在我的 silverlight 5 项目中添加非托管 C++ dll 并从那里指定路径。 我从过去两天开始进行调查,但没有找到任何解决此问题的方法。
只有我找到了下面提到的一个相关链接,但它也没有帮助。
因为它建议如何将非托管 dll 嵌入到托管程序集中。 我尝试了这种方法,但我得到了“BadImageException”。
请建议不要解决这个问题,因为它对我来说真的很紧急。
谢谢,
维平
【问题讨论】:
-
DllImportAttribute 不会将非托管库嵌入到您的 Silverlight 应用程序中(顺便说一句,绝对避免这种绝对路径)。它只是添加一个对该库的引用,但它必须单独下载和安装。
-
您的 SL5 应用程序是否以提升的权限运行?如果没有,我不希望能够使用非托管 DLL。
-
BadImageFormatException 页面有一个“备注”部分,概述了您收到此错误的可能原因。我会检查它们,看看是否有助于解决问题。
-
BadImageFormatException 可能是 32 位与 64 位的问题。确保 Silverlight 安装程序以与本机 DLL 相同的位数运行。
标签: c# c++ silverlight-5.0