問題タブ [linkage]

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.

0 投票する
1 に答える
294 参照

boost - 複数の Boost.Thread インスタンスは C++ アプリケーションで問題ありませんか?

Boost.Threads を DLL (具体的には Mac OS X フレームワーク) として使用するプラグイン アーキテクチャを持つアプリケーションがあります。Boost.Threads も使用するプラグインを作成しようとしており、ライブラリに静的にリンクしたいと考えています。すべて正常にビルドされますが、プラグインの Boost.Threads コードの奥深くで、アプリケーションがすぐにクラッシュします。Boost.Threads の DLL バージョンにリンクすると問題が解決するようですが、プラグインを自己完結型にしたいと考えています。

このようなセットアップで Boost.Threads の 2 つのインスタンスを使用することは可能ですか (1 つは DLL として、もう 1 つは別の DLL に静的にリンクされています)。もしそうなら、2つのインスタンスをうまくやっていくために何が欠けているのでしょうか?

0 投票する
1 に答える
1116 参照

c++ - 「ImageList_Read」を削除する方法: 一貫性のない dll リンケージの警告?

Visual C++ ソリューション (2005) をビルドすると、次の警告が表示されます。

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(678) : 'ImageList_Read' の以前の定義を参照してください

1>e:\xml parse\development\gui\h\wtl4mfc.h(6): 警告 C4273: 'ImageList_Write': 一貫性のない dll リンク

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(679) : 'ImageList_Write' の以前の定義を参照してください

1>e:\xml parse\development\gui\h\wtl4mfc.h(8): 警告 C4273: 'ImageList_ReadEx': 一貫性のない dll リンク

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(686) : 'ImageList_ReadEx' の以前の定義を参照してください

1>e:\xml parse\development\gui\h\wtl4mfc.h(9): 警告 C4273: 'ImageList_WriteEx': 一貫性のない dll リンク

1> c:\winddk\7000.0.winmain_win7beta.081212-1400\inc\api\commctrl.h(687) : 'ImageList_WriteEx' の以前の定義を参照してください

これら 2 つのファイルを確認すると、次のことがわかります。

****wtl4mfc.h で ****

extern "C" { HIMAGELIST WINAPI ImageList_Read(LPSTREAM pstm); BOOL WINAPI ImageList_Write(HIMAGELIST himl, LPSTREAM pstm);

#if (_WIN32_WINNT >= 0x0501) HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags, LPSTREAM pstm, REFIID riid, PVOID* ppv); HRESULT WINAPI ImageList_WriteEx(HIMAGELIST himl, DWORD dwFlags, LPSTREAM pstm);

#endif };

commctrl.hファイルには、次のように表示されます。

WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Read(__in struct IStream *pstm); WINCOMMCTRLAPI BOOL WINAPI ImageList_Write(__in HIMAGELIST himl, __in struct IStream *pstm);

私は Visual C++ の初心者で、これは私が維持できるコードからのものです。これらの警告を削除するにはどうすればよいですか? Winddk の下位バージョンがインストールされているコードをビルドすると、これらの警告は表示されません。

これらの警告の原因は何ですか? どうすれば削除できますか?

0 投票する
1 に答える
1518 参照

flash - MovieClip のインスタンスをステージ上に動的に配置 (AS3)

MovieClip のインスタンスをステージに動的に配置しようとしています。エラーを受け取る:

アクションスクリプト:

0 投票する
3 に答える
895 参照

c++ - C++ でのコンパイル プロセス

BUILDボタンを押したときにコンパイラが正確に何をするかを誰かが実際に説明できれば、私は非常に感謝しています。 ?)、なぜ私はそのような質問をするのですか? 私は、「ファイル間のコンパイルの依存関係を最小限に抑える」ことの意味を理解しようとしています.Meyersの本から50の特定の方法について...(あなたがこの本について知っていることを願っています)、そこで彼はそれが何を意味するのかを説明しています抽象基本クラスとハンドルクラス、私の講師が私に説明したように、余分な .h ファイルを含める必要はありません。それだけです。コンパイルプロセスに関するリンクも歓迎します。事前に助けてくれてありがとう

0 投票する
1 に答える
2806 参照

windows - VS2008 ランタイムを使用して Windows で静的リンクを使用して Qt クリエーターで Qt アプリケーションをビルドするにはどうすればよいですか?

nokia サイトから qt-win-opensource-4.7.0-vs2008.exe をダウンロードし、アプリケーションをビルドするときに使用します。私のアプリケーションは実際には MinGW ではなく VS2008 ランタイムを使用していますが、QtCore4.dll やその他の Qt ライブラリと動的に連携しています。Qt ライブラリとの静的リンクを使用してアプリケーションを作成するにはどうすればよいですか?

0 投票する
2 に答える
836 参照

c++ - リンケージ エラー C++ 未解決の外部シンボル

私は行列プログラムを書いています: 通常の行列 (RegMatrix) を表すクラスと、疎行列 (SparseMatrix) を表すクラスがあります。つまり、非ゼロの値のみを表します。

各 H ファイルの先頭に、反対のクラス宣言を記述します。たとえば、SparseMatrix.h では、クラス RegMatrix を記述します (コンパイラがこのクラスへの参照を認識できるようにするため)。各 cpp ファイルには、両方の H ファイルが含まれています。

私のプログラムはコンパイルされますが、「未解決の外部シンボル..」というリンケージエラーがたくさんあります.

例: 未解決の外部シンボル "public: int__thiscall RegMatrix::getCol(void)const " (?getCol@RegMatrix@@QBEHXZ)" [ファイル: SparseMatrix.obj]

私は自分のコードの何が問題なのかを理解しようとして夢中になっています..

0 投票する
2 に答える
153 参照

c++ - 外部リンケージ

$ 3.5 / 2-「名前に外部リンケージがある場合、それが示すエンティティは、他の翻訳単位のスコープまたは同じ翻訳単位の他のスコープからの名前で参照できます。」

強調表示された'または'は'および'であるべきではありませんか、それとも私が英語のものを解釈するのは間違った日ですか?

追加の質問は、標準文書(最終的なもの)が専門家による文法的なレビューの対象となるかどうかです。

0 投票する
2 に答える
578 参照

c++ - extern "C"(Cリンケージ)デフォルト

質問

GCC、MSVC、Clang、またはいくつかの組み合わせは、リンケージをデフォルトのCに設定することをサポートしていますか?

バックグラウンド

私は大規模な混合C/C ++プロジェクトを持っており、Cリンケージを使用してC ++ソースでシンボルをエクスポートするのは簡単で論理的ですが、これらの同じソースは、プロジェクトの残りの部分がC++リンケージの下にあると想定しています。

現在の状況では、C ++ソースで定義されているCソースが使用するものすべてと、C++ソースがCソースから使用するすべてのものを明示的にラップする必要がありますextern "C++"

extern "C"最後に、実際のC ++のものが文句を言うので、ソースファイルまたはヘッダーファイル全体を配置することはできません。#include <memory>(私が定義したfromやテンプレートなど。)

0 投票する
1 に答える
993 参照

c++ - クラス名のリンク

3.5ドル-「さらに、クラスの名前に外部リンケージがある場合、メンバー関数、静的データメンバー、クラス、またはクラススコープの列挙には外部リンケージがあります。」

それが何を意味するのかについての入力はあり'if the name of the class has external linkage'ますか?

名前空間スコープで定義されたクラス、および静的指定子で定義された名前空間スコープクラス(内部リンケージがある???)と比較して、「ローカルクラス」(おそらくリンケージがない)に関するヒントはありますか?

0 投票する
3 に答える
9207 参照

c++ - 通常の名前空間内の匿名名前空間内のシンボルのリンク

C ++では、関数または変数を匿名の名前空間に配置すると、そのリンケージが内部になります。つまり、staticファイルレベルで宣言するのと同じですが、慣用的なC++です。

通常の名前空間内の匿名の名前空間はどうですか?それでも内部リンクは保証されますか?