Где разместить нативную 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:
SmartDeviceProject1
: приложение для устройства Pocket PC вC#
,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 в качестве ссылки на ваш проект, а затем в свойствах этого файла выберите " Копировать локально"> "Истина".