C# から VM32VBWRAP.dll を呼び出す必要があります。コードからPVCを管理するためのライブラリです。ref パラメータを持たないすべてのメソッドを呼び出すことができます。しかし、ref パラメーターを使用してメソッドを呼び出すことはできません。
私はいつもこのエラーを受け取ります:
「保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています。」System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToManaged (IntPtr pMarshalState、Object& pManagedHome、IntPtr pNativeHome) で LibraryPanello.SourceControl.Pvcs.PvcsGetLockInfoVB (Int32 archiveType、文字列 pathAndFileNameServer、文字列 pathAndFileNameLocal、文字列 usernameInPVCS、Byte[]& バージョン、Byte[]& versionNew 、Byte[]& usernameOutPVCS、Int16 情報、Byte フラグ)
私の宣言は次のとおりです。
[DllImport("VM32VBWRAP.dll", CharSet = CharSet.Ansi, SetLastError = true,
EntryPoint = "_wPvcsGetLockInfoVB@36")]
static extern int PvcsGetLockInfoVB(
int archiveType, string pathAndFileNameServer,
string pathAndFileNameLocal, string usernameInPVCS,
[MarshalAs(UnmanagedType.LPArray, SizeConst = 64)] ref byte[] version,
[MarshalAs(UnmanagedType.LPArray, SizeConst = 64)] ref byte[] versionNew,
[MarshalAs(UnmanagedType.LPArray, SizeConst = 64)] ref byte[] usernameOutPVCS,
short info, byte flag );
何か案が????