От новичка до гуру: Курсы программирования на CyberDuff

Где разместить родную 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, чтобы использовать эмулятор?


  • Я знаю, что в рамках Windows 7 Phone вы не можете использовать управляемый код (пока). Так что это может быть связанная проблема. 15.10.2012
  • @ M4rc - PocketPC! = Windows 7 Phone. 15.10.2012

Ответы:


1

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

  1. SmartDeviceProject1: приложение устройства Pocket PC в C#.
  2. NativeDLL: DLL Win32 SmartDevice в 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: Использование эмулятора в проектах смарт-устройств.

15.10.2012

2

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

скриншот

16.10.2012
  • Если он родной (отсюда и необходимость в P / Invoke), вы не можете добавить на него ссылку. Вы можете добавить это элемент содержимого и установить для него действие сборки значение «Всегда копировать» или «Копировать при изменении». 17.10.2012
  • Новые материалы

    Представляем Narwhal Technologies (Nrwl)
    6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

    Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
    Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..