Где разместить нативную DLL для использования эмулятора Pocket PC?

Я занимаюсь разработкой проекта SmartDevice на C# (Windows Mobile 6.1 - Visual Studio 2008 - Pocket PC) и хочу использовать PInvoke. У меня есть родная DLL, написанная на C++.

Когда я запускаю приложение на моем устройстве, я помещаю нативную DLL в каталог \Program Files\My Project (на моем устройстве), и она работает, но мне нужно использовать эмулятор, и я не знаю, где разместить свою навигационную DLL (на моем компьютере) в этом случае.

Я попытался в рабочий каталог с относительным путем, я попытался DllImport абсолютный путь:

[DllImport(@"C:\John\VMDLLDevice.dll", EntryPoint = "Write")]
public static extern bool Write(char[] FileName);

Но когда я призываю родную DLL, я получаю исключение, потому что эмулятор не может найти DLL.

Где мне разместить родную DLL для использования эмулятора?

2 ответа

Решение

Предположим, у вас есть эти два проекта в одном решении Visual Studio:

  1. SmartDeviceProject1: приложение для устройства Pocket PC в C#,
  2. NativeDLL: Win32 SmartDevice DLL в C++,

Теперь вы можете выполнить следующие шаги:

  • Выберите эмулятор Pocket PC для обоих проектов в параметре устройства Visual Studio.
  • Развернуть проекты; Сейчас в \\Program Files вашего эмулятора вы можете увидеть две новые директории: SmartDeviceProject1 а также NativeDLL (Пуск -> Программы -> Проводник -> Файлы программ).

Ваш NativeDLL.dll находится в NativeDLL каталог, поэтому используйте следующий DllImport:

[DllImport(@"..\NativeDLL\NativeDLL.dll", EntryPoint = "Write")]
public static extern bool Write(char[] FileName);

И теперь вы можете запустить свое приложение, используя эмулятор.

Дополнительная информация MSDN: Использование эмулятора в проектах смарт-устройств.

Вы также сможете добавить свою DLL в качестве ссылки на ваш проект, а затем в свойствах этого файла выберите " Копировать локально"> "Истина".

Скриншот

Другие вопросы по тегам