C++調用C#類庫函數


  最近做一個信息化三維仿真項目,基於第三方提供的虛擬引擎通過VC++2008做二次開發,其中涉及到與C#客戶端的融合以及數據交互的問題,

主要是VC++需要調用C#客戶端提供的類庫內的接口獲取C#客戶端內的數據。

     VC++內調用C#提供的動態庫函數的方法,首先在引用的源文件添加相關的文件引用以及命名空間:

#using "D:\winCe\Debug\TestInterface.dll"
using namespace TestInterface;
using namespace std;
using namespace System;
using namespace System::Runtime::InteropServices;
在具體的調用函數中,本文測試直接在控制台程序的主函數中進行調用:
int _tmain(int argc, _TCHAR* argv[])
{
    TestInterface::TestInterfaceClass  ^ptr = gcnew TestInterface::TestInterfaceClass();//初始化接口類
    ptr->Initialize();//因為是兩個進程直接所以涉及到一些基礎數據的初始化
    string chars = std::string((char*)(int)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ptr->GetTestInfo()));//調用接口獲取數據(json或xml)

    return 0;
}

     這樣就能實現在VC++中調用C#類庫函數達到相關交互工作,當然不同進程的交互還有其他很多方式如共享內存,socket通信。根據不同的項目需求

選擇不同解決方案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM