PInvoke Interop Assistantを使用して、C#PInvoke署名を生成しました。これについて確認をお願いします。DLLを呼び出すと、「PInvokeDLLが見つかりません」というメッセージが表示されます。関数をエクスポートしています。DLLは実行可能ファイルとともに存在します。メッセージとcipherTextはrawバイトのイン/アウトブロブであり、同じバッファです。
extern "C" int __declspec(dllexport) EncryptDeviceName(uint8 *message, uint8 *ciphertext, uint64 msglength)
{
...
return 0;
}
次のC#PInvoke署名が生成されました。
/// Return Type: int
///message: UINT8*
///ciphertext: UINT8*
///msglength: UINT64->unsigned __int64
[DllImport("HC128.dll", EntryPoint = "EncryptDeviceName")]
public static extern int EncryptDeviceName(System.IntPtr message, System.IntPtr ciphertext, ulong msglength);
次の同様の質問の提案に従い、更新を提供します。
アップデート
私の署名は、マーシャルalloc/deallocを使用するWindowsCE6で機能します。Tergiverの署名はWindowsCE6でも機能し、マーシャルの割り当て/割り当て解除は必要ありません。