LoginSignup
0

More than 5 years have passed since last update.

デスクトップキャプチャについて

Posted at

やったこと 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()が未解決と言われる。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0