我正在用C#(Windows Mobile 6.1 - Visual Studio 2008 - Pocket PC)开发一个SmartDevice项目,我想使用PInvoke。我有一个用C ++编写的本机DLL。
当我在我的设备上运行应用程序时,我将本机DLL放在\ Program Files \ My Project目录中(在我的设备上)并且它可以工作,但是我需要使用模拟器而我不知道在哪里放置我的在这种情况下,导航DLL(在我的计算机上)。
我尝试使用相对路径的工作目录,我试图DllImport绝对路径:
[DllImport(@"C:\John\VMDLLDevice.dll", EntryPoint = "Write")]
public static extern bool Write(char[] FileName);
但是当我对本机DLL进行pinvoke时,我得到了一个Exception,因为模拟器找不到DLL。
我在哪里放置我的原生DLL来使用模拟器?
答案 0 :(得分:1)
假设您在同一个Visual Studio解决方案中有这两个项目:
SmartDeviceProject1
:C#
中的Pocket PC设备应用程序。NativeDLL
:C++
中的Win32 SmartDevice DLL。现在您可以按照以下步骤操作:
\\Program Files
中,您可以看到两个新目录:SmartDeviceProject1
和NativeDLL
(开始 - >程序 - >文件资源管理器 - >程序文件)。您的NativeDLL.dll位于NativeDLL
目录中,因此请使用以下DllImport:
[DllImport(@"..\NativeDLL\NativeDLL.dll", EntryPoint = "Write")]
public static extern bool Write(char[] FileName);
现在您可以使用模拟器运行您的应用程序了。
答案 1 :(得分:0)
您还应该能够将DLL添加为项目的参考,然后在该文件的属性中选择复制本地>真强>