說明。有一個C++ exe和一個C#exe。 C#exe是一個C#dll的包裝器。我需要dll在C++代碼中調用記錄器函數(以便只生成一個日誌文件)。目前有一個C++/CLI橋接器,它允許C++ exe在C#dll中調用方法。從C#dll調用C++應用程序的方法
道歉,如果這是一個糟糕的問題。它可能是一個我只是不知道要搜索什麼/我搜索的結果是沒有太大用處的情況。
我有一個用C++編寫的應用程序。它調用了用C#編寫的工具。看來該工具的可執行文件只是c#dll的包裝器。 工具的目的是分析和顯示數據。主應用程序調用它來打開一個新文件。該工具從來不需要在C++代碼中調用任何東西,因此這一直是單向的。它似乎是通過C++/CLI橋實現的。橋接器調用工具API中的函數。
該工具現在需要在C++應用程序中調用某些方法。我不知道如何去實現這一點。我的c#/ C++/CLI經驗介於窮人和不存在之間。我開始試圖克隆C++/CLI橋並將其「反向」,但是由於C#代碼實際上是一個庫,所以從橋上調用它非常簡單。 但是,我不確定(如果它甚至可能)如何從橋上調用C++應用程序。
到目前爲止,我能想到的唯一可行的解決方案是將c#代碼輸出到文件(或希望共享內存),然後C++代碼會定期檢查它。這並不理想。
任何意見,將不勝感激。
謝謝
這顯然是一個重複的問題。你有沒有試過這個:http://bit.ly/1ah8rhc? –
我正在嘗試做相反的事情。我需要C#dll從C++調用方法。我發現的一切似乎都與C++庫有關。我可能會朦朧,但我覺得比你想象的要稍微少一些。 – Hector
有趣的是,我發現這些問題每個月都會過去,但很難找到它們。無論如何,答案永遠是saem:使用P/Invoke(困難的方式),或者在兩者之間寫一個CLI層(就我而言,這種方式) – stijn