unmanaged

    0熱度

    1回答

    我已經看到了Marshal類往往這兩種方法,GetManagedThunkForUnmanagedMethodPtr和GetUnmanagedThunkForManagedMethodPtr,但我仍然不知道如何真正打電話給他們,或者他們所擅長的,因爲MSDN是相當無益這個案例。我想他們是以類似的方式使用,如GetDelegateForFunctionPointer和GetFunctionPoint

    -1熱度

    1回答

    我正在通過RegisterClassEx註冊一個類,但在此步驟之後窗口不再出現。 這是我如何註冊它: wcx = new WNDCLASSEX(); wcx.cbSize = Convert.ToUInt32(Marshal.SizeOf(typeof(WNDCLASSEX))); // size of structure wcx.style = ClassStyle

    1熱度

    1回答

    我正在使用遊戲Arma 3,您可以在其中編寫自己的擴展(意味着C++或C#庫)。這些擴展有一個定義的入口點,這是該DLL接口 void __stdcall RVExtension(char *output, int outputSize, const char *function); int __stdcall RVExtensionArgs(char *output, int outputSi

    0熱度

    2回答

    (順便說一句,這是C#.NET 4.5) 我有一些非託管的DLL會談到一些硬件。我包裝了一堆代碼並獲得了一些簡單的東西,作爲一個類對象,我可以在WinForm中創建它。 private AvaSpec AS = new AvaSpec(); public AvaSpec_Form() { InitializeComponent(); AS.Spect

    3熱度

    1回答

    我想用代碼注入調用遊戲函數。經過一些嘗試後,我發現一個dll做了我想要的。 所以我看到與ILSpy的DLL,但不明白的代碼。 class <Module> { [SecurityCritical, SuppressUnmanagedCodeSecurity] [DllImport("", CallingConvention = CallingConvention.ThisCall,

    0熱度

    1回答

    我在使用DllImport訪問它的函數時打了一個第三方C++ dll的調用問題,這個dll是我用類包裝的。 該DLL需要在使用之前打開一個會話,該會話在執行操作時返回用於引用該會話的整數句柄。完成後,必須使用相同的句柄關閉會話。所以我做了這樣的事情: public void DoWork(string input) { int apiHandle = DllWrapper.StartS

    0熱度

    2回答

    我目前正在研究一些C++代碼,這些代碼涉及到C++ dll。這不是我或我公司的任何其他人有任何經驗的領域。至少可以說是令人大開眼界。 經過大量的閱讀,反覆試驗和挫折之後,我設法解決了大部分問題,並獲得了很大程度上的功能。然而,不時地,它仍然把這扔給我...... System.AccessViolationException:試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞。 ..然後死亡。只

    -1熱度

    1回答

    我已經在C#代碼中使用非託管的處理程序,委託就像 [UnmanagedFunctionPointer(CallingConvention.StdCall)] public delegate int Callback (arguments) 定義時調用約定它運作良好,在32位版本,我要求我必須做什麼改變在64位版本。包含處理程序的dll的C頭定義瞭如果WIN32爲__stdcall,如果WIN

    0熱度

    1回答

    我試圖從層次結構中的每個控件獲取文本。如果我使用unsafe方法,下面的代碼運行正常。但是,使用非託管版本似乎打破hWnd,結果hWnd = GetAncestor(hWnd, GetAncestorFlags.GA_PARENT)抱怨: System.AccessViolationException:'試圖讀取或寫入受保護的內存。這往往表明其他內存已經損壞。「 我已經檢查hWnd從GetWind

    0熱度

    1回答

    即時通訊編寫一個插件到C++項目,我利用UnmanagedExports Nuget包,它允許暴露在託管的.NET代碼中的C函數。 https://www.nuget.org/packages/UnmanagedExports 我已經寫接收的字符串(定義爲在C的char * ++) 下面是UnmanagedExport方法我已經定義爲此工作的插件。 [DllExport("GetString",