簡體   English   中英

如何使用嵌入在 C++ 中的單聲道編譯 C# 代碼?

[英]How do you compile C# code using mono embedded in C++?

你如何使用 C++ 編譯 .cs 文件

我已經搜索了所有 Mono 的文檔,但找不到僅從 C++ 中的嵌入式 Mono 運行時編譯 C# 代碼的方法。 我知道如何使用 C++ 中的嵌入式單聲道函數打開 C# .exe程序集文件,但我似乎無法找到一種方法將.cs文件編譯為 C++ 中的.exe

我還設法通過從 Windows 提供的 CreateProcessA() 函數調用mcs.bat文件來編譯.cs文件,但是這並沒有給我一種方法來記錄錯誤,甚至檢查它是否成功編譯等(它也感覺像是一個黑客而不是官方解決方案)。 我需要這樣做的主要原因是,我可以通過檢測源代碼何時發生更改以及其他條件子集來即時重新編譯 C# 腳本。

有人知道使用嵌入式 Mono 運行時正確編譯 C# 文件的方法嗎? 在哪里可以找到這方面的文檔? 目前我一直在使用這里的文檔: http : //docs.go-mono.com/?link=xhtml%3adeploy%2fmono-api-assembly.html ,它提供了大部分信息。

在 DLL 中鏈接 Mono

另外,如果您熟悉嵌入單聲道,您知道如何在 dll 中使用它嗎? 我已經成功地在控制台應用程序中鏈接和編譯它,但是當我嘗試將它編譯為動態庫的一部分時,我得到了未解決的外部符號錯誤(特別是帶有前綴 __imp* 的函數)。

最后,我使用 mono 將 C# 嵌入為我的游戲引擎的腳本語言,但是我不知道是否有更好(更小)的解決方案可以使用。 如果您知道任何更好的解決方案,請隨時提出建議。

Mono 運行時是一個“運行時”,僅用於運行代碼,但是如果您已經安裝了csc命令,那么您可以使用它:

#include <cstdlib>
int main(){
   system("csc yourfile.cs")
   return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM