У меня есть приложение C # .NET 2.0 CF, которое импортирует функцию из собственной библиотеки DLL со следующей подписью:
__declspec( dllexport ) void DLL_Foo( int count, ... );
My C # приложение P / Вызывает эту функцию следующим образом:
public sealed class MyObject
{
public void Foo()
{
NativeMethods.DLL_Foo(2, __arglist("a","b"));
}
internal static class NativeMethods
{
[DllImport("My.dll")]
internal static extern void DLL_Foo(int count, __arglist);
}
}
Но когда я вызываю MyObject.Foo
, я получаю System.MissingMethodException
.
Что мне нужно изменить, чтобы сделать эту работу?
Спасибо, PaulH
Редактировать: Если я изменю определение импорта на:
internal static extern void DLL_Foo(int count, [MarshalAs(UnmanagedType.LPWStr)]string a, [MarshalAs(UnmanagedType.LPWStr)]string b);
, то вызову:
NativeMethods.DLL_Foo(2, "a", "b");
Это работает без проблем, поэтомуэто что-то с моим __arglist
использованием.