【发布时间】:2016-01-28 05:04:33
【问题描述】:
我有一个非常有趣的问题。这听起来很简单,但我没有找到任何关于它的信息。
我有一个 C# 解决方案,带有 excel 插件和 winforms 应用程序和库项目,只有一种方法。
带有库的项目有下一个代码:
[DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
public static extern IntPtr LoadLibrary(string filename);
public sealed class LibraryInfo
{
public readonly IntPtr Handle;
public LibraryInfo(string dllName)
{
Handle = LoadLibrary(dllName);
}
}
public LibraryInfo GetLib(string name)
{
return new LibraryInfo(name);
}
看起来很简单。 所以我从加载项和 WinForms 调用了该方法
我有一个 Dll,专为 x64 平台和 x86 平台构建。
现在魔术: 当我从加载项和 x64 配置以及 excel-2016 运行 LoadLibrary 时,LoadLibrary 返回错误代码 127 仅 (当然是x64)。当我在 x86 或 winform(x86 和 x64)上运行它时,它可以工作。这还不是全部,当我在 Excel 2013 上运行它时,它也可以正常工作!!!
有人知道吗?
【问题讨论】:
-
是否可以将您的代码格式化为代码。编辑窗口提供了有关如何执行此操作的帮助。这样你就可以获得不错的语法高亮和缩进。就目前而言,这里的代码很难阅读。
标签: c# excel winapi 64-bit loadlibrary