C ,C 混合編碼技術

2021-04-07 02:22:25 字數 520 閱讀 1227

本文提供了乙個方法,讓c++原始碼和c#原始碼一起編譯鏈結成乙個單一的assembly。

由於c++提供了ijw方法,允許將舊有c++**也編譯成託管**,因此這篇小文可以用極小的工作量來徹底解決所有c++遺留**移植到.net的問題。

這個方法,再加上前次的小文《您也使用託管c++嗎?》,就可以把c++遺留**移植到.net的所有方法一網打盡了。

好了,言歸正傳。

假設乙個很簡單的c++程式,它只有乙個函式:

//c.h

#pragma once

int sqr(int n);

//c.cpp

#include "c.h"

int sqr(int n)

為了能讓它與c#共同工作,必須為它加個.net的包裝:

現在,如何將這些原始碼編譯成乙個exe檔案呢?

用整合環境是很難的,最方便的,還是建立乙個makefile來完成。

由於這個例子很簡單,我用命令列來建立這個exe檔案:

執行 o.exe 顯示結果:121

C C 混合程式設計

c中呼叫c c 中呼叫c都會用到extern c 但兩者的意義卻大不一樣!例 c void foo int x c c code extern c void foo int x 讓c 聯結器能通過過類似於 foo來查詢此函式,而非類似於 foo int這樣的符號。使用extern c 則是告訴編譯器...

C C 混合程式設計

分類 linux c c 2012 12 26 09 51 655人閱讀收藏 舉報cc 混合程式設計 externc cplusplus 現在,我們就來慢慢的了解吧。一 extern c 的作用 最重點 1.extern c 的真實目的是實現類c和c 的混合程式設計。extern c 是由 提供的乙...

C C 混合程式設計

現在,我們就來慢慢的了解吧。一 extern c 的作用 最重點 1.extern c 的真實目的是實現類c和c 的混合程式設計。extern c 是由 提供的乙個連線交換指定符號,用於告訴 這段 是 函式。extern c 後面的函式不使用的c 的名字修飾,而是用c。這是因為c 編譯後庫中函式名會...