gpt4 book ai didi

c# - 将 C++ DLL 导入 C# 智能设备应用程序

转载 作者:行者123 更新时间:2023-11-28 08:21:28 31 4
gpt4 key购买 nike

在我查阅了大量的博客和网页并尝试了几乎所有人们解释的内容之后,我问了这个问题。

将 C++ Win32 DLL 导入 C# Windows 应用程序没有问题。这实际上很简单。

但我想做的是将 C++ DLL 导入 C#“智能设备应用程序”,尤其是使用 Visual Studio 2005。

在我的 (TestDLL.dll) C++ DLL 源文件中,我有以下几行:

#if defined (__cplusplus)
extern "C" {
#endif

__declspec(dllexport) void __cdecl foo();

#if defined (__cplusplus)
};
#endif

extern void __cdecl foo()
{

}

我的 C# 包装器 (Wrapper.cs) 类具有以下内容:

[DllImport(TestDLL.dll)]
private static extern void foo();

public static void fooCS()
{
foo();
}

我的 C# 驱动程序类正在调用以下内容:

Wrapper.fooCS();

然后我将我的 Pocket PC 2003 设备连接到 PC,然后我开始调试并运行程序。我收到以下错误消息:

MissingMethodException: PInvoke DLL 'TestDLL.dll' cannot be found.

我双重检查了我的 DLL 位置,所以这不是问题所在。然后我尝试使用 Visual Studio 2005 中的许多不同模板。

  • MFC 智能设备 DLL
  • MFC 智能设备
  • 应用 Win32 智能设备
  • 项目 ATL 智能设备项目
  • Win32 动态链接库

但似乎没有任何效果。始终出现相同的运行时错误。

我还尝试在构建解决方案时更改 CPU 配置。但没有帮助。

所以我现在寻求专家的帮助。

仅供引用,我的设备具有以下平台:

  • Windows Mobile 6 经典版
  • CE 操作系统 5.2.1433
  • 处理器:ARM920T

开发环境是...

  • Windows 7 64 位
  • Visual Studio 2005

提前谢谢你,

最佳答案

对不起,我真的很蠢。
应用程序无法加载 DLL 文件的原因是因为我在移动设备上运行调试。它导致了路径问题。

所以我手动将DLL文件和应用程序的EXE文件复制到移动设备上并运行程序。它工作得很好。
汉斯(评论者),你是对的。谢谢。 =)

现在,我的问题变成了如何轻松调试这个问题。

我目前知道的唯一方法是手动将发布版本的DLL和EXE文件复制到移动设备上并进行测试。 =(

有人知道更好的方法吗?

关于c# - 将 C++ DLL 导入 C# 智能设备应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661241/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com