過去の資産にアクセスするためにC#から使うクラスライブラリをC++/CLIで作成しています。
当初は.NET Framework 4.5で作成していたのですが、Windows7でFrameworkを追加するのが面倒くさいという事で、3.5でプロジェクトを起こし直してコンパイルしました。
そうしたところ、大量のリンクエラーが発生しました。
--抜粋(下記を含め、合計18行のエラー)
VCMRTD.lib(locale0_implib.obj) : error LNK2034: metadata は、COFF シンボル テーブルと整合しません:
LINK : error LNK2034: metadata は、COFF シンボル テーブルと整合しません
MSVCMRTD.lib(locale0_implib.obj) : error LNK2020: 未解決のトークン (0A0000A1) "extern "C" double __cdecl _hypot(double,double)" (?_hypot@@$$J0YANNN@Z)
--
調査した結果、fstream関連を定義するとこの症状が出る事がわかりました。
そこで、単純に以下のプロジェクトを作成したところ、同じ現象が発生しました。
1..NET Framework 3.5でCLRクラスライブラリのプロジェクトを作成する(ここではTESTプロジェクト)
2.作成されたテンプレートの「TEST.h」に関数を追加する
-----(TEST.h)
// TEST.h
#pragma once
#include <fstream>
using namespace System;
namespace TEST {
public ref class Class1
{
void test()
{
std::fstream f;
}
};
}
----
3.コンパイル → リンクエラー
標準関数はいくつか使っているのですが、fstream系だけがダメなようです。
(sstreamはOKでした)
これに関して、何か対策方法はないものでしょうか。
情報があればお教え下さい。
よろしくお願いいたします。
開発環境:
Windows 8.1
VisualStudio 2013 Pro
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VS2013は持っていませんが、VS2012ではC++/CLIと互換性のあるC++ランタイムの
プラットフォームツールセットはv110_xpのようです。
VS2013の場合はv120_xpでしょうか?
プロジェクトのプロパティ→構成プロパティ→全般→プラットフォームツールセット
の値を v120からv120_xpに変更すればビルドできるようにならないでしょうか?
No.1
- 回答日時:
この回答への補足
情報有り難うございます。
当該情報について確認させて頂きましたが、開発環境バージョンが異なる為、残念ながら参考とはなりませんでした。
また、試しに昔の環境(VisualStudio2008+Windows7)でビルドしたところ、問題なくビルドする事が出来ました。
OSと開発環境のどちらに問題があるのかわからないですが、ソースコード自体は問題ないのではないかと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- サーバー Windowsサーバでグループを検索したい 1 2023/04/17 15:30
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- 教えて!goo 教えてGooヲチスレは今もどこかにあるのでしょうか? デジタルライフオールスターズは今? 1 2023/08/21 08:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLL呼び出しAPのリンクエラーに...
-
パブリックシンボルとは?
-
外部シンボル" ~~"は未解決で...
-
「外部参照 1 が未解決です。」...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<math.h>があるのにsqrtが・...
-
アプリケーションのDLLファイル...
-
math.hに含まれる関数が使えない
-
<unistd.h>をVisualStudioでつ...
-
BC30002: 型 'ListItem' が定義...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
Visual studio2017で、2回目の...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
C言語をコンパイルするとコンピ...
-
#If True Then の # って何??
-
” OS ビルド ” の意味が分か...
-
visual C++ でビルドの中止がで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
LNK2019: 外部シンボル どのよ...
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
error LNK2001について
-
外部シンボル" ~~"は未解決で...
-
コンパイルエラー
-
OpenCVでの画像サイズ取得につ...
-
LNK2019: 未解決の外部シンボル...
-
エラー 未解決の外部シンボル
-
実行ファイルの容量を減らした...
-
LNK2001(Pro*c)
-
popen・pcloseについて
-
PathIsDirectoryを使って
-
DB2付きのC言語がコンパイルで...
-
外部シンボルについて
-
未解決の外部シンボル
-
C++ の LNK2001エラー
-
CLapack C++
-
VC++ 6.0へのサンプルプログラ...
おすすめ情報