次の署名を持つネイティブDLLから関数をインポートするC#.NET2.0CFアプリケーションがあります。
__declspec( dllexport ) void DLL_Foo( int count, ... );
私の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
使用法に何かあります。