[]をIntPtrまたはStringBuilderに置き換えると、プログラムが正しいエントリポイントを見つけられなくなるのはなぜですか?編集:これは関数ではなくマクロとして定義されていることに気付きました。(これは新しい質問である必要があります)。_いくつかの答えは、関数シグネチャをIntPtrまたはStringBuilderに変更することを示唆しています。グーグルのいくつかのサイト、特にhttp://www.pcreview.co.uk/forums/thread-1378860.php[here]でもこれらのソリューションを見ました。(他にもありましたが、リンクを探す時間はありません)。err);戻り値の型を変更すると、次の例外がスローされます。_それがうまくいかなかった場合、人々がこれを提案すると想像することはできません。++スキルはひどいので、本当に単純なものを見逃している可能性があります。助けてくれてありがとう。CLIラッパーを作成します。間のギャップを埋める驚くほど簡単で強力な方法です。Invokeで実装することです。以下のアドバイスも同様です。Invoke)を使用する場合は、できるだけ明示的にすることが最善です。errorCode);}さらに、メソッドをより「.Net」にする管理されたエントリポイントを提供することが最善です。SafeHandle])またはその他の手振りが処理されます。++メソッドを変更する必要がある場合がありますが、関数から文字の配列を返すDllImportを見たことはありません。関数errMessage内でAPIコードを変更することをお勧めします。[]を返す代わりに、api.dllライブラリのcharへのポインタを返すことができます。APIエラーコードを返しますか?Marshal.Win32Errorクラスがあります。Tom.source0呼び出し規約はstdcallではないようです(これはDllImportが使用するデフォルトの規約です)。++は、特に宣言されていない場合、CDECL呼び出し規約を使用します。したがって、この呼び出し規則をDllImport呼び出しに追加する必要があります。33UTCの午前0時からミリ秒をCで取得する方法を教えてください。