0

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 );

何か案が????

4

0 に答える 0