PInvoke .net cf
От: Capitan_Blood  
Дата: 10.02.09 11:04
Оценка:
доброго времени суток!
вопрсо следующий:
пишу небольшую прогу для win mobile
прога состояит из двух частей — одна (главный модуль) на .net cf
вторая (dll) на с++
в библиотеке имеется некотоаря функция которую необходимо вызвать из главного модуля
вот код из dll
#define EXPORT __declspec(dllexport)
extern "C" EXPORT int Testmethod()
{
return 5;
}

импортируем функцию:
[DllImport("Math.dll")]
static public extern int Testmethod();


сначала получал ошибки о том тчо не возможно найти библиотеку, потмо что не найдена указанная точка, но с этим с разобарляс быстро, а вот с чем до сих пор не могу разобратсья так это с эксепшеном NotSupportedException()
Re: PInvoke .net cf
От: sgenie  
Дата: 10.02.09 22:25
Оценка: 2 (1)
poprobui tak:

extern "C" EXPORT __cdecl int Testmethod()
{
return 5;
}



Здравствуйте, Capitan_Blood, Вы писали:

C_B>доброго времени суток!

C_B>вопрсо следующий:
C_B>пишу небольшую прогу для win mobile
C_B>прога состояит из двух частей — одна (главный модуль) на .net cf
C_B>вторая (dll) на с++
C_B>в библиотеке имеется некотоаря функция которую необходимо вызвать из главного модуля
C_B>вот код из dll
C_B>
C_B>#define EXPORT __declspec(dllexport)
C_B>extern "C" EXPORT int Testmethod()
C_B>{
C_B>return 5;
C_B>}
C_B>

C_B>импортируем функцию:
C_B>
C_B>[DllImport("Math.dll")]
C_B>static public extern int Testmethod();
C_B>


C_B>сначала получал ошибки о том тчо не возможно найти библиотеку, потмо что не найдена указанная точка, но с этим с разобарляс быстро, а вот с чем до сих пор не могу разобратсья так это с эксепшеном NotSupportedException()
Re: PInvoke .net cf
От: sgenie  
Дата: 10.02.09 22:27
Оценка:
I esche vot eto:

[DllImport("Math.dll"),UnmanagedFunctionPointer(CallingConvention.Cdecl)]
static public extern int Testmethod();


libo ispol'zui

extern "C" EXPORT __stdcall int Testmethod()


Здравствуйте, Capitan_Blood, Вы писали:

C_B>доброго времени суток!

C_B>вопрсо следующий:
C_B>пишу небольшую прогу для win mobile
C_B>прога состояит из двух частей — одна (главный модуль) на .net cf
C_B>вторая (dll) на с++
C_B>в библиотеке имеется некотоаря функция которую необходимо вызвать из главного модуля
C_B>вот код из dll
C_B>
C_B>#define EXPORT __declspec(dllexport)
C_B>extern "C" EXPORT int Testmethod()
C_B>{
C_B>return 5;
C_B>}
C_B>

C_B>импортируем функцию:
C_B>
C_B>[DllImport("Math.dll")]
C_B>static public extern int Testmethod();
C_B>


C_B>сначала получал ошибки о том тчо не возможно найти библиотеку, потмо что не найдена указанная точка, но с этим с разобарляс быстро, а вот с чем до сих пор не могу разобратсья так это с эксепшеном NotSupportedException()
Re[2]: PInvoke .net cf
От: Capitan_Blood  
Дата: 11.02.09 06:13
Оценка:
sgenie спасибо, помог вариант extern "C" EXPORT int __cdecl Testmethod()
Re: PInvoke .net cf
От: Crypto Украина  
Дата: 23.02.09 18:30
Оценка:
Здравствуйте, Capitan_Blood, Вы писали:

C_B>сначала получал ошибки о том тчо не возможно найти библиотеку, потмо что не найдена указанная точка, но с этим с разобарляс быстро, а вот с чем до сих пор не могу разобратсья так это с эксепшеном NotSupportedException()


Кстати, тоже столкнулся с 'Can't find PInvoke DLL 'xxx.dll''. ДЛЛ-ка лежит рядом с исполняемым файлом. Отлично работает на WM 6.x устройствах, но не находится на WM 5.0. Почему и как удобнее исправить?