C (cpp ではない) で書かれた大きな静的ライブラリがあり、次のように定義された関数が含まれています。
StructThing* __cdecl DoSomething(); // in header
StructThing* __cdecl DoSomething() { ... } // in .C file
Cベースの製品でそれを使用すると、すべて正常に動作しますが、c++と呼ばれるこの新しいものに移行し始めました!
しかし、cpp ファイルで DoSomething を使用しようとすると、リンク時に未解決の外部シンボル エラーが発生します。
cpp コンパイラは、装飾されたバージョンの関数を探しているようです。
シンボル (関数) を cpp コンパイラで使用できるようにするにはどうすればよいですか? できればソースライブラリを変更せずに(あまり)、最初に考えたのは.defファイルでしたが、静的ライブラリソリューションでは無視されているようです(そのようなvsプロジェクトに適用できるかどうかはわかりません)
しかし、これは簡単なはずです。Windows API はこのように少し書かれていると思います。
誰でも ?
VS 2012 アップデート 3
ティア