intro作るときの準備方法。intro作るときの準備方法。プログラム1年くらい前の記事を拾ってきました。TokyoDemoFest向けの実行ファイル作ってんだけど、ハマったマジで。VisualStudio2017Communityで設定を構築したので情報追記。64bit環境でコンパイルが失敗する挙動について追記。VisualStudio上の設定は自動セーブされる。具体的には、自分の場合以下の項目でちょっと気をつけなきゃいけないぽい。オプションの設定でオブジェクトファイル作成後、リンク時に落っこちる調べてみたら、オプションでオブジェクトファイルに余計な記述加えることがあるらしく、それで落っこちる可能性がある、ということ。わけわからないエラーでビルドが失敗し続けてるなら一度プロジェクト作り直すのも手ベース資料(これベースに作ってます。ぐすさんとこ)http://wordpress.notargs.com/blog/blog/2015/02/28/%E3%83%A1%E3%82%AC%E3%83%87%E3%83%A2visualstudio2013%E3%81%A74kb%E3%81%AEexe%E3%82%92%E4%BD%9C%E3%82%8B/ちなみに追記で、$(SolutionDir)を指定する時に、「パスの一番先頭に持ってこないと最初にCrinklerが処理されない」らしいので注意。参考資料:http://nanka.hateblo.jp/entry/2018/07/01/034341バッファセキュリティチェックについて「@__security_check_cookie@xが関数~で参照されました」というエラーが出ることがある。バッファオーバーランを検知するためのコードを埋め込むみたいで、不要なので削除する。普通のプログラムだったらあっても問題ないけど、サイズに著しく制限がかかる場合、入念なテストの上コードを抜くという選択肢を採用今回は、C/C++→コード生成→セキュリティチェック→セキュリティチェックを無効にしますを選択して対応(これ設定するとSDLより優先されるので、他でSDLチェックしていても大丈夫になる)参考資料:http://d.hatena.ne.jp/yellow_73/20070905エラーの内容アセンブラコードでFloat取り扱うときの注意点なんか一部命令がうまく認識しないみたい。よって、最初から最適化させて対応するのが早い。これで認識するようになる。自分でfloat取扱用のアセンブラコード書くか。パスに日本語を使わない方がいい海外ソフトにありがちなんだけど、Crinklerでリンク処理行うとき、ファイルの置き場所に日本語パスを指定してると文字が化けるので、正確なパスを参照できなくてエラーコード吐くという。日本語を含まないパスにファイルを置くことで解決するケースあり。どちらかというとアプリケーション側でマルチバイト対応していないがゆえに起こる問題。(ただ英語圏のソフトに対応を求めるのもおかしな話なので、個人で対応できたほうが早い)サブシステムがクリアされてるケース新規にプロジェクト作成した場合、サブシステムが設定されてないのでエラー吐くことがある。リンカ→システム→サブシステム→SUBSYSTEM:Windowsを定義して対応。Crinklerは最新のものを使おう何でかというと、元々結構過去のシステムへの対応してたみたいだけど、見たところWindowsSDKへの対応がかなり時間かかってたっぽい気が。具体的には、古いCrinklerを使うと謎のエラーでCrinklerが異常終了するので、それを回避する形になると時間がかかる。2018/9/24現在、同年更新されたファイルがあるので、それ使うとエラーが発生しなくなる。<KHR/khrplatform.h>って記述が正常に読み込まれなかったので改造して対応した。(ヘッダファイルとして読み込めればとりあえず問題はないので、VCのヘッダファイル集めてるフォルダに投げ込めば認識はしてくれる様子)ちなみに上記ソースは、各プラットフォーム特有の定義らしく、更新頻度は高いんじゃないかと思ってる。別途アセンブラ言語ファイルを記述、masmでアセンブルする必要あり。Intrinsicsの導入を検討。ZeroMemory等で一部関数が呼び出せないエラー。#pragma命令使ったソースをCrinklerで圧縮するときの注意点。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。