問題タブ [extern-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ コードから C 関数を呼び出す
C++ から呼び出したい C 関数があります。extern "C" void foo()
g++ を使用して C 関数をコンパイルできなかったため、" " のようなアプローチを使用できませんでした。しかし、gcc を使用して正常にコンパイルされます。C++ から関数を呼び出す方法はありますか?
c++ - 未解決の外部と extern "C"?
私は C++ に慣れていないので、このリンクなどを完全には理解していません。extern "C"
そして、これはリンクについてだと思います。
これから私が得る問題は、私がextern "C"
考えるコードを解決する必要があるということです:
悲しいことに、私にはその方法がわかりません。このエラーは C++ の世界では非常に一般的であるため、答えを見つけるのは簡単ではありません。
うまくいけば、これを外部コードとして定義する必要があると思うので、これを解決するのはかなり簡単です。
c++ - C と C++ を混合した関数プロトタイプをレイアウトする方法
.c および .cpp ファイルからインクルードしたいヘッダーがあります。
だから私は名前マングリングとextern "C"について知っているので...
しかし、これを .c ファイルに含めると、関数が表示されないため、#ifdef __cplusplus
だから私は2つのコピーを作成することになります:
これを行うためのより良い方法はありますか...私はprototypes.hと呼ばれる別のヘッダーを作成し、それらの2つの場所にそれを含めることを考えました...しかし、私が欠けている簡単なものはありますか?
c++ - C メソッドを C++ プロジェクトに含めることができない可能性はありますか?
このことを使用して、C++ プロジェクト内に C メソッドを含めることができることを知っていますextern "C"
。しかし、ここで、私が作成したライブラリと、開発の詳細とコンパイル仕様を開発している他の人/会社が作成したライブラリの両方からのかなり多くの C メソッドを使用する C++ プロジェクトを作成することを考えているとしましょう。単に気づいていない。
C ライブラリのこのメソッドのいくつかは、コンパイルと構成の詳細が不明なため、私の C++ プロジェクトに含めることができなかった可能性はありますextern "C"
か? それとも、すべての C メソッドextern "C"
は、使用される限り、C++ コードと 100% 互換性がある必要がありますか?
c++ - extern "C" と単に extern の違い
関数シグネチャで宣言された extern "C" を使用し、C ヘッダーを CPP ファイルにインクルードしている C/C++ コードを見たことがあります。
ただし、一部の関数は、署名の前に extern を宣言するだけです (「C」なし)。
QN1:
関数を定義するこれらの両方の方法は同じ効果がありますか、それとも異なることを意味しますか?
私が非常にばかげている場合は申し訳ありませんが、Googleでこの違いを見つけることができません.
例えば:
QN2:
関数が署名に extern で宣言されている場合、対応するヘッダー ファイルを extern "C" ブロック内に含める必要がありますか?
コメントで別のユーザーが指摘したように、マークされた重複はここでの質問を完全には満たしていません。将来、他の人が別の質問に誤解されないように編集しています。
c++ - C++ クラスの C 呼び出し可能ラッパー
C# から呼び出すことができるように、C++ コードのラッパーを作成するチュートリアルに従っています。
ただし、ラッパーのコンパイル中にエラーが発生します。Header.h
以下はソースファイル(body.cpp)です
ラッパー クラス/dll は次のとおりです。
return ステートメントでラッパー クラスを取得します。クラスメソッドがなぜか認識されていないようです。エラーは次のとおりです。
エラー C2228: '.GetSum' の左側にはクラス/構造体/共用体が必要です
私を困惑させているのは、これがチュートリアルからコピーして貼り付けていることですが、私のものは機能しません。何が欠けている可能性がありますか?
c++ - エラー LNK2019: 未解決の外部シンボル
古い MFC WIN CE 組み込みプロジェクトを Windows 7 Visual Studio 2010 でコンパイルできません。古いアプリケーションは組み込み Visual Studio 4 でコンパイルされ、mfcce211.dll が必要だったと思います。
誰でも、すべてのソース ファイルは問題なくコンパイルできますが、次のリンカ エラーが発生します。
VirtualCopy は、ファイル TX3922.cpp にある CTX3922::Initialise で呼び出され、以下を保持します。
プロジェクトのプロパティは次のとおりです。
- 共有 DLL で MFC を使用する
- ATL を使用しない
- 共通言語ランタイムのサポートなし
/NODEFAULTLIB を有効にすると、これを含む多くのリンカー エラーがスローされます。
VirtualCopy の宣言がどこにも見つかりません
ライブラリがありません。もしそうなら、どのライブラリを見つける方法はありますか?
どうもありがとう
c++ - エラー: extern "C" に unqualified-id が必要です
ac 関数を呼び出したい cpp コードがあります。どちらも .o ファイルに適切にコンパイルされますが、コンパイルのために clang++ を実行すると、次のエラーが表示されます。
cpp ファイルのコードは次のとおりです。
エラーを回避するにはどうすればよいですか? clang ++でcファイルをコンパイルできません。externを使用する必要があります。ありがとう。