0

SQL Server の Filestream 機能を使用しています。次のメソッドにアクセスしようとすると:

[DllImport("sqlncli10.dll", SetLastError = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
private static extern SafeFileHandle OpenSqlFilestream(string path, uint access, uint options, byte[] txnToken, uint txnTokenLength, Sql64 allocationSize);

SafeFileHandle handle = OpenSqlFilestream(filePath, (uint)access, 0, txnToken, (uint)txnToken.Length, new Sql64(0));

呼び出し方法です。

PInvoke OpenSqlFilestream 関数の呼び出しにより、スタックのバランスが崩れました。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。

その理由は何ですか?

Visual Studio 2010 を使用しています

4

1 に答える 1