[過去ログ] 【漏れは】猫でもわかる質問スレ【猫以下です】 (531レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
425(4): 2009/03/04(水)18:13 AAS
すいません。先日、「猫でもわかるWindowsプログラミング第三版」を買ってきまして、
56p〜59pに載せられているのをやってみてもうまくビルドできないんです。
おまけのCDに付いていたソースはうまくビルドできたんですが、本に載っているのと
微妙に違うんですよね。
本に載っているのだと90行目がLPCTSTRになっているんですが、
おまけで付いてきたソースですとLPTSTRになってしまうんです。
逆にここだけ直せばうまくビルドできるんですけれども。
環境はVisualStudio2005です。ソースは
外部リンク[html]:www.vipper.org
にあります。
省1
426(2): 2009/03/04(水)18:44 AAS
>>425
VC++6.0
VC++2008 EE
どっちともいけたぞ
427(1): 425 2009/03/04(水)18:59 AAS
>>426
う〜ん、やっぱりVS2005でやってるのが問題なんでしょうか。
本書の方は2008向けに書き換えたものだったみたいですし。
428(1): 2009/03/04(水)19:01 AAS
>>427
そんなん難しいことするからコケるんだよ
char *lpszStr = TEXT("猫でもわかる\nWindows プログラミング\n\t")
TEXT("作者名");
でいけたぞ
VC++6.0
429(1): 2009/03/04(水)19:13 AAS
>>428
あ、なるほど!
ってなんかいじくりまわしてたらまたエラーが・・・
もうちょい勉強してからまた来ます。ありがとうございました。
430(1): 2009/03/04(水)19:16 AAS
>>429
とりあえず TEXT("");
を普通の char で処理した方がいい
431: 2009/03/04(水)19:18 AAS
>>430
はい。
432(1): 2009/03/04(水)19:30 AAS
>>426
少なくともVC++2008じゃ行けんかったぞ
vip1134975.cpp(109) : error C2664: 'DrawTextExW' : 2 番目の引数を 'LPCTSTR' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
要は型の不一致
噛み砕いて言うと関数(この場合DrawTextExW)が
2番目に欲しい変数(LPWSTR型)とは異なるもの(LPCTSTR型)を与えてるから
ちなみにソースではDrawTextExと書いてるけど、その記述をたどると
#define DrawTextEx DrawTextExW
とあり、つまりは DrawTextEx == DrawTextExW
433(1): 425 2009/03/04(水)20:29 AAS
>>432
ありゃ、つまりDrawTextExを使う場合はLPCTSTRじゃなくてLPWSTR
を使わないとダメってことですか。
んじゃあ本の方が間違っていて、おまけで付いて来たソースの方が合っていたってことで
いいんでしょうか?
434: 2009/03/04(水)21:24 AAS
>>433
本は持っとらんからなんとも言えん
435(1): 2009/03/04(水)22:33 AAS
プロジェクトのプロパティからマルチバイト文字を使う設定を選べ。
あるいは、説明になっていないような気がするWeb上の説明。
外部リンク[htm]:www.kumei.ne.jp
436: 425 2009/03/04(水)22:47 AAS
DrawTextExの定義をよく見てみたしたところ、
2番目の引数はLPTSTR で宣言されていまして、
LPTSTR で値を渡さないといけないのにLPCTSTR で渡しちゃってたのが原因みたいです。
まだウィンドウズプログラミングは始めたばっかりなので
どっか抜かしたりタイプミスしたのが原因かもしれないんで断定は出来ないんですけれども
たぶんそれで合っていると思います。
>>435
ありがとうございます。
でも、それをやっても同じエラーが表示されるだけで効果はありませんでした。
437: 2009/03/06(金)15:00 AAS
うお、本当だ。この手のconst付きだろ常考な引数はCreateProcess系だけだと思っていた。
438(1): 2009/03/18(水)07:28 AAS
iniファイルの読み書きをしようと思ってKeyに対応する文字列を拾う処理で
詰まり、下にあげる虎の巻を参考にしているのですが、EXEと同じディレクトリ
に読み込みたいiniファイルがある場合はどうしたらいいですか?相対パスとい
うのでしょうか?
完全手詰まりです。
OS:WindowsVistaHomePremium
IDE:VisualStudioExpress2008
言語:C++
参考サイト::外部リンク[html]:candy.zapto.org
439: 2009/03/18(水)07:48 AAS
おながいします。
440(2): 2009/03/18(水)11:56 AAS
>>438
#include <mbstring.h>
...
TCHAR szIniFile[MAX_PATH];
LPTSTR pch;
GetModuleFileName(NULL, szIniFile, MAX_PATH);
pch = _mbsrchr(szIniFile, '\\');
lstrcpy(pch, "\\file.ini");
GetPrivateProfileString(..., szIniFile);
441: 2009/03/18(水)12:46 AAS
>>440
ありがとうございます。試してみます。
442: 2009/03/18(水)13:29 AAS
>>440
_mbsrchrより_tcsrchrにしろよ。
外部リンク[aspx]:msdn.microsoft.com
自分ならlstrcpyより_tcscpyにするけど、そこはさすがに好みの問題。
443(2): 2009/03/18(水)19:49 AAS
OE6の重複メールを削除しようと
外部リンク[html]:questionbox.jp.msn.com
を参考にして実行してみたのですが、うまくいかず、
デスクトップや開いているフォルダ、
また起動中のアプリに対して勝手な操作がしばらくの間行われてしまい、
少なくとも起動中のタスクのいくつかは終了してしまうなど、
思わぬ事態に陥ってしまいました。
Ctrl+Alt+Delでwscript.exeを停止しOS再起動して動作は止まったのですが、
起動中だったアプリが取り扱っていたデータが書き換えられて上書きされていないか?
また、何かファイルが操作、削除されてしまったりはしていないか、非常に不安です。
省1
444: 2009/03/18(水)21:00 AAS
>>443
鼬害
上下前次1-新書関写板覧索設栞歴
あと 87 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.228s*