静的ライブラリ制作

derok
記事: 51
登録日時: 12年前

静的ライブラリ制作

投稿記事 by derok » 12年前

今回初めて静的ライブラリを作って見ました。
作ったのはファイル読み込みクラス。
CSVファイルなどのファイルを読み込んだ後、解析して構造体などにセットするクラスです。
こんなかんじの仕様しました。
・Separater::BaseSeparaterクラスを継承する。
・継承したクラスはSetData(Iterater)関数をオーバーライドする。
・SetData(Iterator)関数はIteraterクラスのメンバ関数Get(unsigned int,std::string)を使ってデータをセットする関数。
・Getメンバ関数は第一引数がそのデーターが何番目に書かれているかを、第二因数は読み込みに失敗したときのダミーの値を入れる。
・Readメンバ関数で解析開始。
・SetReadDataメンバ関数で、解析するデータをセット。
・Separateメンバ変数にデータとデータの間の文字列をセット。
で、作ってみた後なんですが・・・
見たことないエラーが二回も・・・
一回目は「_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。」
どうやらDebugビルドしたものをReleaseビルドしようとしたりするとでるエラーの様です。

CODE:

#ifndef SEPARATER_2013_9_16
#define SEPARATER_2013_9_16
	#ifdef _DEBUG
		#pragma comment(lib,"C:/Users/takahashi/Documents/Visual Studio 2012/Projects/Lib/Separater/DebugSeparater.lib")
	#else
		#pragma comment(lib,"ReleaseSeparater.lib")
	#endif
	#include "LibSeparater.h"
#else
#endif
の様にして回避しましたがはたしてこれでいいのやら・・・
次は「defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。」
こんどはランタイムライブラリの設定が違った場合に出るエラーの様です。
DXライブラリにあわせて、MT、MTdビルドして解決しました。
せっかく作ったのでどんどん利用したいと思います。

コメントはまだありません。