【发布时间】:2010-12-14 20:17:56
【问题描述】:
我需要将我用 C++ 编写的函数导入到我的 C# 应用程序中,该函数现在已编译为 DLL。一切都在没有错误或警告的情况下构建,但是当我逐步执行代码时,对 DLL 的第一个函数调用会引发 Exception 并显示“无法在 DLL 'WMIQuery.dll'中找到名为'CreateScanEngine'的入口点”的消息。该函数在我的 C# 应用程序中声明如下:
internal static class WMIQuery
{
[DllImport("WMIQuery.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
internal static extern void CreateScanEngine();
}
Dependency Walker 在 DLL 中显示该函数:
序数:1(0x0001)
提示:0(0x0000)
函数 ^: void CreateScanEngine(void)
入口点:0x00001860
Dependency Walker 还显示 DLL 的这些错误/警告:
错误:未找到至少一个必需的隐式或转发依赖项。
警告:至少没有找到一个延迟加载依赖模块。
警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。
这会有所作为吗?另外,我尝试将 DLL 添加为对 C# 项目的引用,但出现此错误:
无法添加对 [我的 DLL] 的引用。请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。
有谁知道我做错了什么?谢谢。
【问题讨论】:
标签: c# c++ visual-studio-2008 dllimport dll