No.1ベストアンサー
- 回答日時:
簡単に言えば、C++インターフェースのDLLは(最悪の場合)同じコンパイラの同じバージョンでしか使えなくなるためです。
C言語の場合と違って、C++ではソースのコンパイル時に関数はその名前に対して複雑な変換を行ってからリンカに渡します。これをマングリングといいます(参考URL参照)。
問題は、このマングリングの方法は各コンパイラごとに違い、下手をすると同じコンパイラでもバージョンが違うと異なる場合があります。
したがって、外部からライブラリを参照する場合は同じマングリング方法をとっているコンパイラ(つまりライブラリ作成時のものと同じコンパイラ)を使う必要があります。
*以下、余談
実は以前私はGDI+をネイティブに使ったC++プログラムを作ったことがあります。
そのとき使ったGDI+ライブラリはクラスで提供されていて、しかもVC++でもBCCでも利用できるものでした。
そのことをあまり気にも留めていなかったのですが、あるとき上に書いたようなことを思い出し、
「はて、どうやってこの問題を解決しているんだろう?」と調べてみました。
すると、そこにあったのは……
……そのままの状態では決して使うなとドキュメントされたCインターフェース関数群とそれをラップするC++クラスのヘッダーファイルでした。
まあ、こういう回避法もあるということで。
参考URL:http://www.kijineko.co.jp/tech/cppemb/mangling.h …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- ノートパソコン パソコン、周辺機器に詳しい方、教えてください 4 2022/07/23 13:31
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- その他(開発・運用・管理) VisualStudioSetup.exeの設定について(Rustのインストールの準備として) 2 2023/04/17 12:54
- 楽器・演奏 ギターやベースってインターフェイス使ったりやwebカメラがしっかりしてたらオンラインレッスンでも効果 1 2023/06/13 07:33
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- 作詞・作曲 DTMとMIDIキーボードについて。 ハードオフでジャンク品のmidiキーボードを見つけました。Ro 1 2022/06/25 11:35
- ノートパソコン このスペックのpcどうですか? ExcelやネットサーフィンやYouTubeに使いたいのですが 【O 1 2022/07/28 22:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++でデスクトップGUIアプリ開...
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
cc と gcc の違い
-
python エラー
-
エクセルのエラーメッセージ「4...
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
C言語をコンパイルするとコンピ...
-
Arduinoに関する質問
-
コンパイル時に「out of memory...
-
error C2143: 構文エラー の対処法
-
c#による実行ファイルの作成方法
-
math.hに含まれる関数が使えない
-
VB2010でのSQL日付フォーマ...
-
コンパイル??
-
VBAのエラーでNextに対するFor...
-
HANDLEの宣言でのエラー
-
C言語で作ったらWindowsでもMac...
-
dllかlibか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
組み込みソフト。ROM領域にデータ
-
cc と gcc の違い
-
C++Builder → Visual C++ 移植...
-
printfなど、標準関数のソース...
-
COBOLのALPHABET...
-
COBOLの論理演算子について質問...
-
Visual Studio でmakefileを使...
-
cobolで実行環境って何ですか?
-
パーサとコンパイラの違いって?
-
昔のgraph.hというファイル
-
未使用引数の注意文出力を回避...
-
C言語でのコンパイラの作成方法
-
C言語はC言語でできている?
-
COBOL計算式の中間ワーク桁数に...
-
リリースモードとデバッグモー...
-
POWERCOBOLのSQL...
-
『Bin』ディレクトリは何の略語?
おすすめ情報