3

我处于 Web 服务的设计阶段。我将使用 MVC 4,我们正在研究 Azure。我有一个非托管 C++ DLL(32 位和/或 64 位,我们都可以构建),这是我现在必须使用的内部遗留代码。DLL 仅导出 MVC 代码所需的函数(无类)。

由于 .NET DllImport 语句对于 DLL 名称是固定的,因此我们使用 .NET 代码中的一个方案通过 kernel32.dll 执行 LoadLibrary。这似乎在本地运行良好,并且有利于更改基于 32/64 位和/或调试版本加载的 DLL。

  1. 这种 LoadLibrary 方法是否适用于 Azure?
  2. 放置图书馆的最佳位置在哪里?我在想 App_Data 文件夹。
4

1 回答 1

2

只要您在云端安装了Visual C++ 运行时库(此处的说明),并且您调用的本机 dll 编译为 64 位,就应该可以正常工作。

我不知道最佳位置,我只是将本机 dll 放在包含包装程序集的文件夹内名为“x64”(或 32 位的 x86)的文件夹中,然后将该文件夹放在项目根目录下。

另外不要忘记将本机 dll 的“复制到输出目录”属性设置为“始终复制”。

于 2013-04-01T02:29:57.673 回答