検索結果 25 件
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
Re: ゲームのセーブデータを読み込みたい
連投失礼します。事故解決しました。 //検索文字をSHIFT-jisからUTF-8に変換 BOOL ShiftJisToUTF8(LPCSTR lpShiftJis,LPSTR *Buffer) { wchar_t *bufUnicode; char *utf8; // まずUniocdeに変換する // サイズを計算する int iLenUnicode = MultiByteToWideChar(CP_ACP, 0, lpShiftJis, strlen(lpShiftJis) + 1, NULL, 0); //バッファを確保 if ((bufUnicode = (WCHAR*)calloc...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
Re: ゲームのセーブデータを読み込みたい
"大日本"の代わりに"\xe5\xa4\xa7\xe6\x97\xa5\xe6\x9c\xac"を検索すると見つかるかもしれません。 次のコードを実行したところ int main(int argc, char **argv) { char *txt; getfiletext("test.txt", &txt); return text_find(txt, "\xe5\xa4\xa7\xe6\x97\xa5\xe6\x9c\xac", 0); } '[7488] GetNavyInfo.exe ' はコード 15237921 (0xe88321) で終了しました。 -1ではないので発見できてる...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
Re: ゲームのセーブデータを読み込みたい
メモ帳はつきますが、fopenはつきませんでした。そう仮説を立てたら、まず実験してみてはいかがですか?
実験をすることで、一般につくかはわからなくても、つくことがあるかはわかるかもしれません。
実験はしましたか?したのであれば、結果はどうでしたか?
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
Re: ゲームのセーブデータを読み込みたい
今しがた手元のコピー元ファイル確認してみたところBOMは付いていませんでした。メモ帳で編集したり、fopen_sでencodeを指定したりするとBOMってつきますか?これくらいしか思うところがないです。念のために、コピーしてzipしただけのものをおいておきます。駆け出し さんが書きました:添付されたファイルtest.txtにはBOMがついていましたが、どういう意味でしょうか?BOMついてなかったので、四苦八苦してましたが、UTF-8なんですね。わかりませんでした。UTF-8のファイルを読み込んでいる
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
Re: ゲームのセーブデータを読み込みたい
UTF-8のファイルを読み込んでいる BOMついてなかったので、四苦八苦してましたが、UTF-8なんですね。わかりませんでした。 また、getfiletext関数内で読み込んだデータをナル終端していない(mallocで確保したバッファの初期値は不定)ので、 この関数で取得したデータ(へのポインタ)をそのままstrlenに放り込むのは危険です。 読み込んだデータの次のバイトにヌル文字'\0'を入れるべきです。 ご指摘ありがとうございます。てっきりそのままcalloc使っていると思っていたのですが、malloc使ってました。コードを次のように修正しました。 int getfiletext(LPC...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームのセーブデータを読み込みたい
- 返信数: 9
- 閲覧数: 5150
ゲームのセーブデータを読み込みたい
タイトルの通りですが、うまくいきません。セーブデータの日本語部分を読み込めない(見つけられない)のです。 セーブデータは*iniみたいな構造になっていて、 [tab=30]param = value [tab=30]param = "string" [tab=30]{ [tab=60]child_param = value [tab=30]} みたいになっています。今回うまくいかないのは navy={ id={ id=802 type=61 } name="大日本帝国第7艦隊" movement_progress=8.400 override_move=yes path={ 2752 } lo...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: utf16beの読み込み方法
- 返信数: 4
- 閲覧数: 3296
Re: utf16beの読み込み方法
ありがとうございます。C++ほとんど触ってないので、試行錯誤しながらやっていきたいと思います!
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: utf16beの読み込み方法
- 返信数: 4
- 閲覧数: 3296
utf16beの読み込み方法
こんにちは。テキストエディタを作成しているのですが、UTF-16BEのファイルを読み込めず右往左往しています。UTF-16LE、UTF-8は読み込めています。 _wfopen_sにはMSDNを見る限りutf16-beを読み込めないようなのです。 #include <Windows.h> #include <stdio.h> #include <Shlwapi.h> #include <io.h> #include <fcntl.h> #include <sys/stat.h> #pragma comment(lib,"Shlwapi.lib") //BOMを内部で識別するためのマクロ #def...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: mp4の再生
- 返信数: 7
- 閲覧数: 3963
Re: mp4の再生
ご返信ありがとうございます。
単刀直入に言えば、
単刀直入に言えば、
この一点です。この目的を達成するために現時点でMCIでは再生できないので、どうすれば再生するのか
- MP4にもMP3のID3のようなヘッダが存在しているのか
- もし存在しているならば、実際のMP4がどこから始まっているのかをどう割り出すのか
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: mp4の再生
- 返信数: 7
- 閲覧数: 3963
mp4の再生
こんにちは。 *.mp4の再生について、質問があります. Visual Stdio 2015, MCIを用いて,MP4を再生したいのですが、再生できないのでmciGetErrorStringWを呼び出すと次のような文字列が取得できました. MCI の初期化で問題が発生しました。 そこで、Eternal Windowsさんの こちら のサイト(の下のほうです)にて公開されている方法を用いて、MCI Extensionsを出力させたところ、次の結果を得ました.(出力が少し違いますが、結果は同じ) (前略) 'SoundPlayer.exe' (Win32): 'C:\Windows\System3...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動
- 返信数: 5
- 閲覧数: 2760
Re: GetOpenFileNameの挙動
返事が遅れて申し訳ないです。一般に、マクロの引数に副作用がある式を使うときは注意が必要です。
PRE31-C. 安全でないマクロの引数では副作用を避ける
ご返信感謝します。ブクマして、少しづつ理解しながら読んでいこうと思います。
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動
- 返信数: 5
- 閲覧数: 2760
Re: GetOpenFileNameの挙動
申し訳ないです...releaseビルドすると、バグらなかったので、気付くことができました。今度も自己解決しましたね。また掲示板に来てください。
難しいです...プログラミングは...
解決つけ忘れてましたね、これにて解決とさせていただきます。
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動
- 返信数: 5
- 閲覧数: 2760
Re: GetOpenFileNameの挙動
すいません。自己解決しました。 #define IF(x) OutputExeLogA("if(%s) は \'%s\' として評価されました。\n",OPTP(x),(x)==1 ? "true" : "false"); if(x) このマクロを使うと (x)==1 ? "true" : "false") の部分で一度xが実行され、 if(x) の部分で2度目が実行されるようです。 完全に読み違えていました。 なので Main.cpp #if defined _DEBUG //IFマクロの本体 VOID *p; #endif strdef.h #ifdef _DEBUG extern VOI...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動
- 返信数: 5
- 閲覧数: 2760
GetOpenFileNameの挙動
こんにちは。VisualStudio 2015/Win32 でプログラミングしている者です。 今日、GetOpenFileNameの挙動がおかしくなり、自己解決できそうにありませんので質問します。 状況なのですが、 (1)GetOpenFileName()を呼び出し、ダイアログが出てきます。(正常) (2)複数のファイルないしは一つのファイルを選択して、「開く」もしくは「キャンセル」のボタンを押します。(正常) (3)するとなぜか、複数選択したときは選択されたファイルの一つ上の階層へ、単数のときはファイルが既に選択された状態で出てきてしまいます。 キャンセルのときはダイアログが出てくるのみです...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Re: Win32 プログラミング
こんばんは。
Mathさん、いろいろ教えていただいてありがとうございました。
これにて、解決とさせていただきます。
Mathさん、いろいろ教えていただいてありがとうございました。
これにて、解決とさせていただきます。
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Re: Win32 プログラミング
なるほど、自分これまで何度か破たんしてる(なんでこの処理をしているかわからなくなる)ので、これからは何を実装するか決めてから実装します。>といいうことは、ここで○○を実装、あそこで××を実装、といった具合に決めてからコードを書くということでしょうか?
そうです。設計書をもとにスケルトンを作らないでいきなりプログラムを書くといずれ破綻します。
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Re: Win32 プログラミング
おはようございます。 実際の開発現場ではスタブ (stub)とドライバー(driver)という考え方がある。 https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%96 このようにスタブ毎にテスト出来ないと自分でもわけが分からない"スパゲティ"プログラムになる。基本設計書をまず見せて頂き1ファイル事にテスト可能な設計になっているか検討する必要があります といいうことは、ここで○○を実装、あそこで××を実装、といった具合に決めてからコードを書くということでしょうか? プロジェクト・ファイルを送って頂けるとコマンドライン・コンパイルができるの...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Re: Win32 プログラミング
こんばんは。連投失礼します。 まず、検証用に置かせていただいたソースコードですが、バグがありました。申し訳ないです。 UserInterface.cppのGetUserFilesの、一つのファイルのみが選択されたときの処理を完全にDebugするのを忘れてました。(複数のほうのみチェックして油断してました。) つきましては、UserInerface.cppは次のようになります。 また、新たに関数を追加しています。 こちらのコードは最新のものではありません。 UserInerface.cpp,strdef.h,Main.cpp,CunstomDraw.cpp UserInterface.cpp #...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Re: Win32 プログラミング
こんばんは。Debugをして、いくつか試行錯誤してみたのですが、関数:FillRectの戻り値は常に1なのです... FillRect関数(MSDN) また、いくつか試行錯誤した結果、余計に自分でもわからなくなってきてしまいました。(CustomDraw.cppの抜粋を見ていただけると助かります) デタッチ(?)していないので結果が反映されないよ、ということは読んだのですが、c++かつ無償版のVC2015にはついていない機能を使っていたもので... また、検証用に現在私が書いたソースコードすべて(ヘッダ、リソース含む)を置いておきます(バグあるかもです...)。 ヘッダファイルとソースファイ...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32 プログラミング
- 返信数: 15
- 閲覧数: 5204
Win32 プログラミング
こんばんは。今、自分でWindowsMediaPlayerもどきを作っています。 CunstomDrawを使い、すでに再生されたエリアは青く塗るようにしたいのですが、塗られないままで、そのままです。 (画像を添付します。) どこが間違っているかを、ご教示していただけないでしょうか。 (音源は、ネット上に公開されている著作権フリーのものを利用しております) MFP【Marron Fields Production】 こちらのソースは最新のものではありません。 CustomDraw部分 #include "strdef.h" LRESULT CustomDrawProc(HWND hWnd, In...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動について
- 返信数: 2
- 閲覧数: 2768
Re: GetOpenFileNameの挙動について
返信ありがとうございます。 関数呼び出し側では次のように呼び出しています。 CHAR Temp_proName[MAX_PATH]; if (GetUserOpenFileName(Temp_proName, MAX_PATH, "AllFiles(*.*)\0*.*\0\0",NULL)) { //後続処理... } テストしたどちらの環境もマルチバイト(本当はよくなさそう)なので、エラーになっていないようです(指摘されるまで気付きませんでした)。 ご指摘を受けて、UNICODE,x64/x86環境で試してみたところまったく同じ結果(x86ではエラーは出ないがx64だと出る)になりました。 ...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: GetOpenFileNameの挙動について
- 返信数: 2
- 閲覧数: 2768
GetOpenFileNameの挙動について
こんにちは。 DxLibでユーザーが指定した画像を表示するプログラムを組みました。 ですが、GetOpenFileNameをコールするタイミングで次のような例外が発生します。 11160 22:50:34.196 ShipAssertNoUI '.sl5' (0x2e736c35) 11160 22:50:34.196 Throwing exception: エラーを特定できません (.sl5) 0x00007FFA70908A5C で例外がスローされました (GameProg_2012.exe 内): Microsoft C++ の例外: GCError (メモリの場所 0x000000EC...