将c++ DLL导入c#智能设备应用程序
Importing C++ DLL into C# Smart Device Application
我在查阅了大量的博客和网页并尝试了人们解释的几乎所有内容后,问了这个问题。
我没有问题导入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' .
我检查了我的DLL位置,所以它不能是问题。然后我尝试使用Visual Studio 2005中的许多不同模板。
- MFC智能设备DLL
- MFC智能设备
- 应用程序Win32智能设备
- ATL智能设备项目 Win32 DLL
但似乎什么都不起作用。总是出现相同的运行时错误
在构建解决方案时,我还尝试更改CPU配置。但是没有帮助。
所以我现在寻求专家的帮助。
仅供参考,我的设备有以下平台:
- Windows Mobile 6 Classic
- ce OS 5.2.1433
- 处理器:ARM920T
开发环境是…
- Windows 7 64bits
- Visual Studio 2005
提前感谢,
对不起,我太笨了。
应用程序无法加载DLL文件的原因是我在移动设备上运行调试。这导致了路径问题。
所以我手动将DLL文件和应用程序的EXE文件复制到移动设备上并运行程序。它运行得非常好。
汉斯(评论者),你是对的。谢谢。=)
现在,我的问题变成了如何轻松地调试这个问题。
我目前知道的唯一方法是手动将DLL和EXE文件的发布版本复制到移动设备并进行测试。= (
有人知道更好的方法吗?
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 我应该为我的应用程序和库使用智能指针吗
- 将c++ DLL导入c#智能设备应用程序