Где разместить нативную 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 дополнительная информация:
Использование эмулятора в проектах смарт-устройств.

1

Другие решения

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

Скриншот

0

По вопросам рекламы [email protected]