[英]Concurrency::task.wait() throws invalid_operation
Concurrency::task.wait()拋出invalid_operation異常: “在 Windows 運行時 STA 中等待任務是非法的。” 此異常自 2022 年 11 月 14 日起發生,似乎與 Microsoft 更新相關。 在調試模式下構建時不會發生異常。 編輯:僅適用於某 ...
[英]Concurrency::task.wait() throws invalid_operation
Concurrency::task.wait()拋出invalid_operation異常: “在 Windows 運行時 STA 中等待任務是非法的。” 此異常自 2022 年 11 月 14 日起發生,似乎與 Microsoft 更新相關。 在調試模式下構建時不會發生異常。 編輯:僅適用於某 ...
[英]Exception in Concurrency task.then.wait affects further call of ::ShellExecuteEx()
實現以下邏輯以使用托管 C++ 在 C++ 應用程序中通過“filename.extension”打開文件: 由於上面的代碼拋出異常,我們 go 進一步通過::ShellExecuteEx替代文件打開方法 ::ShellExecuteEx失敗並最終出現在 Microsofts ppltasks.h ...
[英]Discuss how the finally block works
我正在使用 Visual Studio 2019,我有一段使用 finally 塊的代碼,我在每個Test1() 、 Test2()和Test3()函數的開頭聲明了一個 std::string 對象。 我在每個函數的 finally 塊中放置了一個斷點以查看str變量,結果str變量在Test1( ...
[英]System::String has no member Length in C++/CLI
我正在開發一個將 C++ 與 C# 代碼連接起來的 DLL,在 Visual Studio 2017 中使用 C++/CLI。對於該項目,我在Project -> Properties -> General啟用了編譯器選項 '/clr' 。 我創建了一個String^變量,我想讀取它的長 ...
[英]cast of (managed) Message to COPYDATASTRUCT
根據這個例子,我正在使用覆蓋的 WndProc 來完成進程間通信: https://learn.microsoft.com/en-us/windows/win32/dataxchg/using-data-copy我沒有問題發件人,這工作正常。 但是,一旦我想要獲取 LParam 的內容,我就無法對 ...
[英]Call native std::function from C++/CLI
我有一個本機 class,它接收一個 std::function 作為參數,並在某個時間點調用此回調: 假設這駐留在我無法控制的庫中,因此給定了 std::function。 現在我有一個 C++/CLI class,我希望在其中調用此回調: 甚至有可能捕獲 this 變量嗎? 我真的不能更改 N ...
[英]Linking static native library to managed C++ project pulls unused (and unexpected) dependencies in
概要: 托管 ( /clr ) C++ 項目 ( .dll ) 靜態鏈接本機 C++ 庫(使用/MD編譯)。 Static 庫很大並且引用了許多其他庫,但是托管 C++ 代碼使用的功能是微不足道的,不應引入任何其他依賴項。 問題: 鏈接失敗, LNK2001和LNK2019提到代碼絕對不依賴的符號 ...
[英]Working code throwing exception when new lines added. Debugging tips?
我正在研究一個專有的代碼庫,所以我必須抽象一下。 我正在嘗試在 MyApplication 中設置 DataType_T*** myData 的值。 我正在使用共享的 c++ 庫(我表示庫 A)來設置值。 The shared c++ library is just a simple wrapp ...
[英]Issue for user operator from managed C++ in C#
我將一些 C++ 代碼包裝在托管 C++ 中,以便在 C# 中訪問它:我不知道如何使操作符在 C# 中正常工作。 我在托管 C++ 中創建: 這適用於托管 C++: 但是在 C# 中,我不能直接使用運算符 ++ 或 [],我必須使用一些不符合運算符目的的丑陋名稱。 誰能告訴我我做錯了什么? 我在一些 ...
[英]Getting Read/Write access error when trying to use method from external library
我正在嘗試使用庫中的以下實現 C++ 我正在導入它以與 C# 一起使用,並且得到 System.AccessViolationException: 'Attempted to read or write protected memory。 這通常表明其他內存已損壞。 任何解決此錯誤的 ...
[英]Facing issue in windows SDK headers are not recursively included in Visual Studio Managed C++ project
我創建了一個簡單的托管 C++ 項目,我可以在其中從 Atltypes.h 訪問 CPoint。 編譯時我收到錯誤'errno.h' 標頭未找到。 但是我檢查了項目-> 屬性-> VC++ 目錄-> 包含目錄... 包含頭文件路徑。 文件 errno.h 在 SDK 路徑 'C: ...
[英]Bad image format when running managed C++/CLI assembly in .NET Core 3.1
看到 .NET Core 3.1 和 Visual Studio 2019 的最新預覽版增加了對托管 C++/CLI 項目的支持,我感到非常興奮,因為這樣的項目是在 .NET 框架上保留特定項目的唯一想法。 因此,我安裝了 Visual Studio Preview 16.4.0 Preview 4 ...
[英]How do I correctly call Poco functions from managed C++ code?
我在托管 DLL 中使用 pocoXML 函數,該 DLL 由另一個托管 C++ 項目使用。 托管 DLL 編譯完美。 但是當調用一個使用 poco 函數的 DLL 函數時,我在 debug_heap.cpp 中得到一個調試斷言失敗(is_block_type_valid)。 我究竟做錯了什么? ...
[英]Convert from System::String^ to System::String
我有一個標准的庫字符串,我想進行以下轉換: 系統:: String ^到std :: string ...
[英]A pointer to member is not valid for a managed class
我創建了一個庫,其中一個公開的函數接受一個void(*fun_ptr)(int)類型的函數指針。 函數語法是: start_server(char *devices, char *folder, int number, int timeout, void(*status_of_server)(in ...
[英]How to link a .so file to a managed DLL with mono
我正在為使用單聲道執行的 .net 中的 ARM 處理器編寫嵌入式 linux 程序。 我發現我可以簡單地在我的 PC 上編譯為 x86 或 x64 架構,將 Debug 目錄復制到 linux,然后使用 mono myProgram.exe 運行程序。 該程序像這樣完美地工作,mono 似乎解決了 ...
[英]Convert chinese error message to String^ in managed C++
我有一個叫CTP的公司的dll,它使我可以在中國交易所交易。 它在C ++中,我的應用程序在C#中。我已經能夠編寫代碼,使用托管C ++鏈接到dll,並將字符串(ascii)和其他參數從C#轉換為dll。 唯一的問題是,當我從dll中獲取錯誤消息時,它們是中文。 而且我無法將char *轉 ...
[英]C++/CLI Access String::Format from non CLI Code
我想從我的C ++代碼庫訪問String :: Format方法。 為此,我可以簡單地創建一個函數: 我的問題是,不是我的代碼庫中的每個文件都是CLI,因此我想從非托管部分調用此方法。 為了能夠做到這一點,通常我會在頭文件中聲明方法,並在托管的.cpp文件中實現這些方法。 因為 ...
[英]Windows service in C# + C++ is refusing to start in Docker
我在VS 2017中創建了一個包含2個主要項目(和常見項目)的解決方案。 該體系結構說明了一個非常大的遺留項目,因此無法更改。 主項目是一個.Net可執行文件,其主類繼承自'ServiceBase'類,以便用作Windows服務。 它定義WCF端點並使用接口“ IWcfXmlServer” ...
[英]AccessViolationException calling native C++ code from managed C++ (wrapper for ASP.NET)
我有一個ASP.NET Web應用程序,該應用程序需要訪問本機C ++ DLL中的功能。 為此,我使用托管的C ++ DLL包裝了本機C ++代碼。 但是,從托管代碼調用本機函數會導致System.AccessViolationException 。 我不必使用本機代碼,但是它將寫入文件系 ...