Я задаю этот вопрос после того, как я просмотрел тонны блогов и веб-страниц и перепробовал почти все, что люди объясняли.
У меня нет проблем с импортом C ++ Win32 DLL в приложение C # Windows. И это было на самом деле прямо.
Но я пытаюсь импортировать C ++ DLL в C # «Приложение для смарт-устройств», особенно с помощью Visual Studio 2005.
В моем исходном файле DLL C ++ (TestDLL.dll) у меня есть следующие строки:
#if defined (__cplusplus)
extern "C" {
#endif
__declspec(dllexport) void __cdecl foo();
#if defined (__cplusplus)
};
#endif
extern void __cdecl foo()
{
}
И мой класс оболочки C # (Wrapper.cs) имеет следующее:
[DllImport(TestDLL.dll)]
private static extern void foo();
public static void fooCS()
{
foo();
}
И мой класс драйвера C # вызывает следующее:
Wrapper.fooCS();
И я подключил свое устройство Pocket PC 2003 к ПК, затем я начал отладку и запустил программу. И я получаю следующее сообщение об ошибке:
MissingMethodException: PInvoke DLL
«TestDLL.dll» не найден.
Я дважды трижды проверил свое местоположение DLL, поэтому это не может быть проблемой. А потом я попытался использовать множество различных шаблонов из Visual Studio 2005.
- MFC Smart Device DLL
- Смарт-устройство MFC
- Приложение Win32 Smart Device
- Project ATL Smart Device Project
- Win32 DLL
Но, похоже, ничего не получалось. Всегда одна и та же ошибка во время выполнения.
Я также пытался изменить конфигурацию процессора при создании решения. Но не поможет.
Так что теперь я ищу помощь экспертов.
К вашему сведению, на моем устройстве установлена следующая платформа:
- Windows Mobile 6 Classic
- CE OS 5.2.1433
- Процессор: ARM920T
А среда разработки - это ...
- Windows 7 64bit
- Visual Studio 2005
Заранее спасибо,