やったこと 2016/9/22
VisualStudio2015 baseclasses.sln にてstrmbasd.libの生成を確認
Pushsource.slnのプロジェクトをビルド。strmbasd.libがリンクできていることは確認
ただし、strmbasd.libの中で標準関数(labs(),memcmp(),memcpy(),memset())の実体がないと言われてエラーになっているのが現状。
=> 原因として、Dxライブラリが古い?
=> DXライブラリの最新版を入手。C:\DxLib フォルダ以下に展開
Pushsource.slnのプロジェクトのプロパティに、以下の変更を反映
・ 「C/C++」の「全般」タグの「追加のインクルードディレクトリ」および「リンカー」の「全般」タグの「追加のライブラリディレクトリ」に、以下の絶対パスを追加
c:\DxLib_VC\プロジェクトに追加すべきファイル_VC用
試してみたが、問題解決せず......
インクルードファイルの中身を見る時は以下に格納されている
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
仕方がないので、上手くシンボル解決ができているプロジェクトからPushsource.slnのプロジェクトに対して、「リンカー」→「入力」タブ→「追加の依存ファイル」の設定をコピーして、strmbasd.lib(Releaseモードのときはstrmbase.lib)を追加。
=> 多くのシンボル未解決問題は、ひとまず解消
=> Pushsource.defに、未定義シンボルが2個残っている模様
上手くシンボル解決できているプロジェクトと、うまくいかないプロジェクトで、ソースファイルの前処理結果(*.i)を取って比較してみた。
=> 両者とも、memcmpのプロトタイプ宣言もできており、呼び出すコードも問題なさそうであった。
=> なのに、何故片方は未解決と言われるのか?
=> さらに調べたところ、うまくいかないほうは「リンカー」=>「入力」タブ=>「すべての既定のライブラリの無視」が「はい(つまり、無視する)」になっていた。
=> これを取ったところ、memcmpやmemcpyなどで出ていたシンボル未解決のリンクエラーは解消。
=> まだ少しだけエラーあり。_imp_timeGetTime()と_imp_timeSetEvent()が未解決と言われる。