■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part23
1 名前:デフォルトの名無しさん :2006/02/24(金) 01:24:53
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

  質問の仕方については次のページが大変参考になります。
  http://www.hyuki.com/writing/techask.html
  http://www.geocities.co.jp/Beautycare/4965/public/template.html
  http://myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

2 名前:デフォルトの名無しさん :2006/02/24(金) 01:25:47
【過去スレ】
Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/
Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/
Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/
Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/
Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/
Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/
Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/
Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/
Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/
Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/
Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html

3 名前:デフォルトの名無しさん :2006/02/24(金) 01:29:12
【関連スレ】
■MFC相談室 mfc15d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1131958904/
Win32API質問箱 Build40
http://pc8.2ch.net/test/read.cgi/tech/1138893959/
鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/
C言語なら俺に聞け! Part 122
http://pc8.2ch.net/test/read.cgi/tech/1139570025/
C++相談室 part47
http://pc8.2ch.net/test/read.cgi/tech/1139931895/
C/C++の宿題を片付けます 61代目
http://pc8.2ch.net/test/read.cgi/tech/1140039002/
【初心者歓迎】C/C++室 Ver.24【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1135828083/

【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
http://msdn.microsoft.com/library/ja/
Platform SDK Update ※変更された
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
Google
http://www.google.co.jp/

4 名前:デフォルトの名無しさん :2006/02/24(金) 01:30:19
【このスレの前身 VisualC++相談室 過去スレ】
part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html
part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html
part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html
part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html

5 名前:デフォルトの名無しさん :2006/02/24(金) 11:16:24
otu

6 名前:デフォルトの名無しさん :2006/02/24(金) 20:30:21
プロジェクトにlibファイルの追加はどうやるんでしょうか?
VC++.net2003です

7 名前:デフォルトの名無しさん :2006/02/24(金) 20:30:52
ヘルプ嫁


8 名前:デフォルトの名無しさん :2006/02/24(金) 20:40:20
>>6
プロジェクトのプロパティからリンカの入力の追加の依存ファイルのところ。
構成に気を付けて設定すること。

9 名前:デフォルトの名無しさん :2006/02/24(金) 20:56:09
>>8
gdi;pus.libを追加したらうまくいきました。構成に気をつけるっていうのは
何を気にするんですか?

10 名前:デフォルトの名無しさん :2006/02/24(金) 21:05:58
>>9
デバッグ構成だけにlibを追加していてリリース時にエラーになって騒いだり、
デバッグとリリースで別libファイルなのに両方ともデバッグ版を指定してエラーになって騒いだりという人がいる。

11 名前:デフォルトの名無しさん :2006/02/24(金) 21:14:46
いろいろやってみたんですが、どうもうまくいかないので教えてください。

public __gc class Form1 : public System::Windows::Forms::Form
{ public: CString test;
.....
}
で、error C3633: マネージ '<不明>' のメンバとして '<不明>' を定義できません。変換には reinterpret_cast が必要です。
と出るのですが、どうすればいいのでしょうか?

VisualC++ 2003です。

12 名前:デフォルトの名無しさん :2006/02/24(金) 21:31:41
>>11
gcクラスはアンマネージドクラスを持てないはず。

13 名前:デフォルトの名無しさん :2006/02/24(金) 21:36:36
>>12
ではこの中でCStringは使えないのでしょうか?

14 名前:デフォルトの名無しさん :2006/02/24(金) 21:51:40
pragmaでもリンクできる。

15 名前:デフォルトの名無しさん :2006/02/24(金) 21:54:28
ていうかさ、

ライブラリをリンクしないと使えないヘッダファイルは、
#pragma comment(lib, "hogehoge")
を書いておいてほしいよね。

16 名前:デフォルトの名無しさん :2006/02/24(金) 21:57:21
ライブラリをリンクしなくても使えるヘッダファイル・・・

17 名前:デフォルトの名無しさん :2006/02/24(金) 23:24:56
>>11=13
CStringはMFC/ATLです
>>11はどう見ても.NETです、本当に(ry

18 名前:デフォルトの名無しさん :2006/02/25(土) 03:09:09
JNIを使ってJava関数を呼んだ時の
戻り値(文字列型)の取得方法について教えてください。

int型などは以下で戻り値を取得できたのですが
jint iRtn = jni_env->CallStaticIntMethod( j_class, j_methodId );

以下のようなString[][]を返すJava関数を呼んだ時は
VC++側でどのように取得すればよいのでしょうか?
jobjectなどでいろいろ試したのですが行き詰まりました。。
static string[][] getStringTest() {
String[][] str = { {"aa","bb"}, {"cc","dd"}, {"ee","ff"} };
return str;
}


19 名前:デフォルトの名無しさん :2006/02/25(土) 10:10:26
>>18
Javaスレで訊いた方がいいんで内科医?

20 名前:11 :2006/02/25(土) 10:15:12
System::Stringを使ったところ、うまくいきました。
ありがとうございました。

21 名前:デフォルトの名無しさん :2006/02/25(土) 18:29:58
VC8です、新しいプロジェクトで
CLRからWindowsフォームアプリケーションを選択してプログラムの
学習をしています
外観はFormに、buttonとtextboxを一個ずつ貼り付けた形です
やりたいことは、テキストボックスに文字を入力して、ボタンを押したら
input.txtというファイルに入力した文字を書き込みたいのですが
どの様に書いたらいいでしょうか、よろしくお願いします


22 名前:input.txtに書き出すように書けばいい :2006/02/25(土) 18:35:23
ここはド初心者にプログラムの仕方を教えるスレではありません

まずは本でも買って勉強しろ

23 名前:デフォルトの名無しさん :2006/02/25(土) 18:52:42
>>21
くだすれに池

24 名前:デフォルトの名無しさん :2006/02/26(日) 00:37:52
ド素人です。
VC++2005 Express Edition落としてC++のプログラム始めようとしてるんですが、
買った初心者向けの本(VS2003用)や、ネットのサイトは基本的に最初はMFCを使ったプログラムです。
ExpressにはMFCは同梱されていないようで、のっけからつまづいてる状況です。

ExpressにMFCを追加するのは可能ですか?Standard買えって話でしょうか。

25 名前:デフォルトの名無しさん :2006/02/26(日) 00:40:23
MFCが使いたいなら買えって話です

26 名前:デフォルトの名無しさん :2006/02/26(日) 00:53:56
>>24
或いはMFCを使わないWindowsプログラムの本を買うと言う手もある。

27 名前:デフォルトの名無しさん :2006/02/26(日) 01:00:46
>>25 >>26
ども。どっちか買ってきます。

28 名前:デフォルトの名無しさん :2006/02/26(日) 08:43:04
テキストデータを
読み込んでバイナリーで表示したいのですが。

29 名前:デフォルトの名無しさん :2006/02/26(日) 09:15:10
>>28
ですがなんでしょうか。

30 名前:デフォルトの名無しさん :2006/02/26(日) 09:34:25
独り言に話しかける奴きんもーっ

31 名前:デフォルトの名無しさん :2006/02/26(日) 15:13:47
質問です。

+Rootディレクトリ          //ルートのディレクトリ
  +コンポーネントディレクトリ  //コンポーネントなくラスが入ってるディレクトリ
  +ネットワークディレクトリ   //ネットワーク用のクラスが入ってるディレクトリ
      +ベースディレクトリ    //ネットワークの基本的なクラスが入っているry

このようにクラスのファイルをフォルダ分けして整理したいのですが、
ベースディレクトリに入っているファイルから、コンポーネントディレクトリに入ってるファイルをインクルードしたいときに

#include "./../コンポーネントディレクトリ/Component1.h"

と書くのではなく

#include "Rootディレクトリ/コンポーネントディレクトリ/Component1.h"

とは書けないのでしょうか?

32 名前:デフォルトの名無しさん :2006/02/26(日) 15:20:17
>>31
書けます。そりゃもう、好きなように書けますとも。
それ相応のMakefileかプロジェクトの設定をする手間を厭わなければ。

33 名前:843 :2006/02/26(日) 15:53:59
できました。

>>それ相応のMakefileかプロジェクトの設定をする手間を厭わなければ
ということは皆さんはこのようにフォルダ分けをしていない方が多いのでしょうか?
つーか、しないのが普通?

34 名前:デフォルトの名無しさん :2006/02/26(日) 17:27:13
しなきゃいけないほどファイル多くない

35 名前:デフォルトの名無しさん :2006/02/26(日) 18:28:57
ローカルなら相対パスだし、そうでないならMakefileに追加。

36 名前:デフォルトの名無しさん :2006/02/28(火) 09:25:53
ツリーコントロールで質問させて下さい。
親を選んだら、即座に子を選択したいのですが、
例えば、ABCをクリックしたらDEFが選択される・・・

ABC
   DEF
   GHI
JKL
MNO

丁度VS2003のオプション画面の様な動きをさせたいのです。
なにか良い方法はありますでしょうか?
(シングルクリックで子が開く様、Single ExpandはTrueにしてあります)

37 名前:デフォルトの名無しさん :2006/02/28(火) 09:33:27
何か良い方法って、コードで選択させりゃいいじゃない

38 名前:デフォルトの名無しさん :2006/02/28(火) 09:37:06
っ[SendMessage]&[TVM_SELECTITEM]

っ[TreeView_Select]

39 名前:36 :2006/02/28(火) 09:44:44
ありがとうございます
もしかしたら、プロパティにそういう設定があるのかと思いまして・・・
コーディングでがんばります

40 名前:デフォルトの名無しさん :2006/02/28(火) 15:56:10
VS2003で.NETプログラミングをしています。
DropDownListスタイルでComboBoxを使っているのですが、初期値を上手く設定できません。
SelectedIndexを使っても、デザイン画面とコード画面を切り替えたりしている間にいつの間にか消えてしまいます。
どうすれば上手く設定できるのでしょうか。

41 名前:デフォルトの名無しさん :2006/03/01(水) 21:43:44
マルチには死を

42 名前:デフォルトの名無しさん :2006/03/01(水) 22:01:07
ピクチャーボックス等で絵を表示している領域上に
見えないボタン(下のピクチャーが表示できるように)を設置する方法ってありますか?
visibleをFalseにするとボタンの存在自体がなくなってしまうので・・・。

43 名前:デフォルトの名無しさん :2006/03/01(水) 22:16:41
見えないなら、WM_LBUTTONDOWNで処理すればいいのでは?

44 名前:デフォルトの名無しさん :2006/03/01(水) 22:17:06
VC6.0なんですが、プロジェクト名って変えられないんですか(涙)?

45 名前:デフォルトの名無しさん :2006/03/01(水) 22:24:45
見えないボタンなんて存在しないのと何が違うのかサッパリわからん
ていうか邪魔

46 名前:デフォルトの名無しさん :2006/03/01(水) 22:25:06
>>44
自分でファイルいじって書き換える

47 名前:デフォルトの名無しさん :2006/03/01(水) 22:27:21
フラットツールバーみたいなもの?
フラットにして絵を貼れば

48 名前:デフォルトの名無しさん :2006/03/01(水) 22:49:15
>>46
それやってみたんですが、やりかたまずかったらしくてプロジェクトが開けなくなってしまったんですが。
具体的にどのファイルのどこを書き換えればいいかわかりますか?


49 名前:デフォルトの名無しさん :2006/03/01(水) 22:55:46
わかる

50 名前:デフォルトの名無しさん :2006/03/01(水) 23:21:51
>>49
ぜひ教えてください!お願いします。


51 名前:デフォルトの名無しさん :2006/03/01(水) 23:24:32
だが、マルチっぽいので断る!

52 名前:デフォルトの名無しさん :2006/03/01(水) 23:27:56
クラス名じゃなくてプロジェクト名だけなら馬鹿でもできるだろ

53 名前:42 :2006/03/01(水) 23:35:44
レスを求めといて、自己解決で申し訳ありませんが、
TransParentで目的が達成できることが分かりました。
>>43
見えないボタンという表現が良くありませんでした。失礼しました。
ボタン等を透明にする方法を知りたかったのです。
>>45
ピクチャーの一部をクリックするとイベントが起こるようなプログラムに
したいと思っています。別にボタンじゃなくてもいいです・・・。
>>47
そうするとジグゾーパズルみたいになるので、透明の方法を探してました。

駄レス失礼しました。

54 名前:デフォルトの名無しさん :2006/03/01(水) 23:36:17
VC++ができて、あの書き換えができないのは不思議だ・・・

55 名前:デフォルトの名無しさん :2006/03/01(水) 23:59:42
>>52
クラス名のほうがソースとヘッダをいじるだけだからはるかに簡単だと思うんですが。


56 名前:デフォルトの名無しさん :2006/03/02(木) 01:07:28
>>55
プロジェクトファイル書き換えるだけだが。

57 名前:デフォルトの名無しさん :2006/03/02(木) 01:07:45
>>51
どこら辺にマルチされてるん?マルチっぽかったら答えるのやめよと思うんだけど。

58 名前:デフォルトの名無しさん :2006/03/02(木) 01:13:08
>>57
OKWave

59 名前:デフォルトの名無しさん :2006/03/02(木) 01:21:17
>>58
情報ありがとー!本当だ。スルーします。

60 名前:デフォルトの名無しさん :2006/03/05(日) 21:43:09
VS2005のVC++を使ってるんですが、
OPENFILENAME構造体のlpstrFileが
LPTSTR型からLPWSTR型に変わっているみたいで困っています。
どなたか解決法をご存じないでしょうか?

61 名前:デフォルトの名無しさん :2006/03/05(日) 21:48:32
プロジェクトの設定で使用する文字がUNICODEになってるんじゃないか?

62 名前:デフォルトの名無しさん :2006/03/05(日) 21:52:09
#undef _UNICODE
#undef UNICODE

63 名前:デフォルトの名無しさん :2006/03/05(日) 21:53:55
>>60
2005でもLPTSTRだよ。
設定次第でLPSTRにもLPWSTRにもなるのがLP*T*STR。

プロジェクトの設定でマルチバイトを使用するようするのは一時的な回避手段だと心得ておくべき。

64 名前:デフォルトの名無しさん :2006/03/05(日) 22:08:29
>>61-63
レスどうもありがとうございます。
マルチバイト文字セットを使うようにしたらコンパイル通りました。
今までVS2003を使っていた時は普通にコンパイル通っていて、
型の意味などは特に意識しておらず、どうしたらよいか全然分かりませんでした。
みなさん本当にどうもありがとうございました。

65 名前:デフォルトの名無しさん :2006/03/05(日) 22:44:08
VS2003はデフォルトが非UNICODE(typedef LPTSTR LPSTR)
VS2005はデフォルトがUNICODE(typedef LPTSTR LPWSTR)
ただそれだけのお話

66 名前:デフォルトの名無しさん :2006/03/06(月) 08:31:22
Unicode もそうだけど、2005 にしてから
プロジェクト作るたびにいろんな設定 OFF にしまくり・・・

デフォルトの設定自体をいじることってできたっけ?

67 名前:65 :2006/03/06(月) 09:10:59
typedefの文法前後逆じゃん俺・・・

68 名前:デフォルトの名無しさん :2006/03/06(月) 11:16:07
VC++6.0でMFCActiveXコントロールプロジェクトを作成するときに、
MFC ActiveX ControlWizardの「このプロジェクトのコントロールにランタイム ライセンスをつけますか?」
のところを「ランタイムライセンスなし」で作成してしまいました。
あとになってつける必要ができたのでつけたいのですが、この場合、プロジェクトを再度
作成するしかないのでしょうか?どこかに設定があるのでしょうか?

69 名前:デフォルトの名無しさん :2006/03/06(月) 11:18:33
VS2003使ってるんですが、
変数名や関数名にマウスのポインタを当ててポプアップするヒントがありますよね。
あれが、特定の関数の、特定の行から出なくなっちゃったんですけど、
なんでですか?

70 名前:デフォルトの名無しさん :2006/03/06(月) 13:12:37
>>66
2005になって慌てているほうが間抜け。
どーんと構えていれば問題ない。

71 名前:デフォルトの名無しさん :2006/03/06(月) 13:25:15
>>69
その行の前にミスがあったりすると出なくなる事があるような気がする。

72 名前:デフォルトの名無しさん :2006/03/06(月) 15:19:07
>>71
ビルドも通ってるから明らかなミスは無いんですけどね、
2行前の変数宣言を1行から2行に分けて書いたら治った。
分けが分からん。

73 名前:デフォルトの名無しさん :2006/03/06(月) 15:23:09
それがMSクオリティ

まぁ、MSの作るIDEはどうも変な動作が多いからな
_TEXT("")構文使って日本語入力するとクイックヒントが戻らなくなったりな

74 名前:デフォルトの名無しさん :2006/03/06(月) 17:22:36
中でヒント出してる人とコンパイルしてる人は全然別だし

75 名前:デフォルトの名無しさん :2006/03/06(月) 19:34:55
Visual Studio 6.0にバッファオーバーフローの脆弱性

「Visual Studio 6.0」とWebアプリケーション開発ツール「Visual InterDev 6.0」本体に、
バッファオーバーフローの脆弱性が存在する。パッチは存在しない。

http://www.itmedia.co.jp/enterprise/articles/0603/06/news039.html

76 名前:デフォルトの名無しさん :2006/03/06(月) 20:39:24
VS2003なんですが、いつの頃からかデバッグしようとすると
しばらく固まったままになってしまうのです。大体30秒から1分ほどすると
何事も無かったようにようやくデバッグが動き出すんです。
いったいなぜ?

77 名前:デフォルトの名無しさん :2006/03/06(月) 22:12:36
アンチウィルスソフトが関係しているとか

78 名前:デフォルトの名無しさん :2006/03/07(火) 00:02:42
マシンのメモリがすくにゃい、デバッグしてるプログラムに大量のメモリをとるバグがある。

79 名前:デフォルトの名無しさん :2006/03/07(火) 00:04:57
なんでメモリ確保が遅いんだとおもったら、
1MBじゃなくて、1GB確保しててワロタことがあったな

80 名前:76 :2006/03/07(火) 00:19:06
レスありがとう。
ひょっとして既出の問題なのかなと思ったけど、うち固有の問題みたいですね。
マシンのメモリは1G積んでて、P4 2.4GHzなんです。
セカンドマシンの、P3 800MHz 128M ではなんとも無いんですこれが。
プロジェクトに関係なく固まるのでプログラムのバグじゃないです。
ノートンか、それともVC2003再インスコしてみよう。

81 名前:デフォルトの名無しさん :2006/03/07(火) 01:12:50
こんばんわーVS2003を使ってvcを使っているものです。

プロジェクトを作る時【Win32 プロジェクト】っていうの選んで作っています
いまコモンコントロールのリストビューをCreateWindowで作る途中なんですが
プロジェクト作るときの自動生成されるコードについて質問があります
コモンコントロールを使うための
【#include<commctrl.h>】【#pragma comment(lib, "comctl32.lib")】
などの文を【stdafx.hまたはcpp】(自動生成された)に書かず、
【プロジェクト名.cpp】に直接書くとエラーが発生してLV_COLUMN構造体などが
定義されていないとでます、これはなぜなんでしょうか?

それと自動生成されたコードのWinMainは【int APIENTRY _tWinMain(..】
のようになっています、これはなんなんでしょうか?
もしわかる方がいたら、答えてもらえるとサイワイです!

自分の知識レベルは猫でもわかるWindowsプログラミングを読めるくらいです。

82 名前:デフォルトの名無しさん :2006/03/07(火) 01:40:24
なぜ、って定義されてないんだろ。inclueより前に出現したかか、includeしたのとは翻訳単位が別か。

83 名前:デフォルトの名無しさん :2006/03/07(火) 01:42:47
すみません質問です。

ダイアログベースのMFCです。
ワーカースレッドなるもので、とある処理をさせています。
ここまでは無事完成したのです。
そしてその処理結果をエディットボックスに表示させたいのですが、
ワーカースレッド中の処理の終わりに、エディットボックスに割り当てたDDX変数に文字列を代入して
UpdateData(FALSE);するとそこでアサートしてしまいます。
wincore.cpp の 889行目、ASSERT((CWnd*)p == this); // must be us
だそうです。うん、よく分からない。

そこでワーカースレッドが処理を終わった頃を見計らって、
ワーカースレッドの外でUpdateData(FALSE)すればいいんじゃないか
と思ったのですが、いつワーカースレッドが終わったのか、どうやって知ればいいのかが分かりません。
SPY++で見ていてもそれらしきメッセージも見当たりませんでした。
ど、どうすれば・・・

84 名前:デフォルトの名無しさん :2006/03/07(火) 01:47:57
::PostMessageでも使って勝手に投げろよ。

85 名前:83 :2006/03/07(火) 01:59:36
あ、コントロール変数でSetWindowTextでなんとかなりそう
>>84
それもいいですね。ありがとう、気づかんかった。酒飲み過ぎた

86 名前:デフォルトの名無しさん :2006/03/07(火) 03:27:25
>>83
スレッドハンドルはイベントオブジェクトだから、ハンドルがあれば終了チェックが出来る。
Win32 APIだよ。わかる? わかんなかったら自分で調べてね。


87 名前:デフォルトの名無しさん :2006/03/07(火) 07:51:56
>>81
APIENTRYはWINAPIと同じ意味。
_tWinMainは3番目の引数に対してWinAPIと同じようにTCHARを使うようにしたもの。

88 名前:83 :2006/03/07(火) 10:57:49
http://www.hi-ho.ne.jp/hawk/mfc0401.html#thread
>>84と同じヒントが書いてあった。ごめん。
>>86これまた情報ありがとう。調べてみる。

89 名前:デフォルトの名無しさん :2006/03/07(火) 13:30:26
>自分の知識レベルは猫でもわかるWindowsプログラミングを読めるくらいです。

誰 で も 読 め ま す

90 名前:デフォルトの名無しさん :2006/03/07(火) 14:17:14
猫には読めないと思う

91 名前:デフォルトの名無しさん :2006/03/07(火) 14:23:44
( ゚д゚)<

92 名前:デフォルトの名無しさん :2006/03/07(火) 15:04:46
猫ひろしにも読めないと思う

93 名前:デフォルトの名無しさん :2006/03/07(火) 19:50:58
江戸屋子猫なら読めるかな?

94 名前:デフォルトの名無しさん :2006/03/07(火) 22:25:24
ダイアログボックスにコントロールを配置する時
その位置や大きさを数値で直接指定できませんか?
リソースを直接編集やコーディング以外で。

95 名前:デフォルトの名無しさん :2006/03/07(火) 22:28:16
グリッドつけるとかじゃ?

96 名前:デフォルトの名無しさん :2006/03/07(火) 23:34:53
res だっけかRCファイルだったか位置情報を持ってる
構成設定ファイルなかったかなあ?なんか昔客に尋ねられて調べたような
しらべてないような。

97 名前:デフォルトの名無しさん :2006/03/08(水) 09:03:57
>リソースを直接編集やコーディング以外で。


98 名前:デフォルトの名無しさん :2006/03/08(水) 09:53:54
リソースの直接編集やコーディング以外っていったいどんな事を指しているの?

99 名前:デフォルトの名無しさん :2006/03/08(水) 10:14:45
最近のやつはVBのフォームエディタのような形式にかわったから
プロパティで座標が指定できそうな気がするけど
VC6使ってるからよくわからん。

100 名前:デフォルトの名無しさん :2006/03/08(水) 12:43:34
少なくともVC7.1のリソースエディタのプロパティには位置情報がない。

101 名前:デフォルトの名無しさん :2006/03/08(水) 12:56:47
スタティックテキストとエディットコントロールが
高さ方向の位置、微妙に合わないので嫌になります

102 名前:94 :2006/03/08(水) 12:57:23
ウィンドウの大きさを自由に変えられるアプリなら別にいいんですよ。
適当に配置してコーディングで位置決めするから。
でもウィンドウ固定のアプリやダイアログで、みんなどうやって大きさ決めてるんですか?
リソースエディタで適当に配置?やっぱり大きさは切りのいい数値じゃないと気持ち悪いんですが。
VS7.1のリソースエディタじゃ正方形のボタンを配置するだけでも苦労する。

103 名前:デフォルトの名無しさん :2006/03/08(水) 13:02:53
そのくらいの問題ならレイアウトグリットで充分って希ガス。

104 名前:デフォルトの名無しさん :2006/03/08(水) 13:03:40
[← →] こういうようなボタンで他のコントロールに合わせる

105 名前:デフォルトの名無しさん :2006/03/08(水) 13:54:02
すいません。どうしてもわからないことがあるので教えてください
ld:Undefined symbols:
_answer_check

というエラーが出るのですがこの原因がよくわかりません。
マックでemacsでやっています。
どなたかわかりましたら教えていただきたいです。
よろしくお願いします

106 名前:デフォルトの名無しさん :2006/03/08(水) 13:56:17
>>105
一度なんて堅いこと言わずに、300回ほど死んだら?

107 名前:デフォルトの名無しさん :2006/03/08(水) 14:35:01
マックでemacsでldのエラーのどこがVisualC++なのか

108 名前:デフォルトの名無しさん :2006/03/08(水) 14:40:04
大方Visualという文字が見えなかったのだろう

109 名前:デフォルトの名無しさん :2006/03/08(水) 18:59:17
VC++のobjをldでリンクしようとでもしてるんかいな

110 名前:デフォルトの名無しさん :2006/03/10(金) 11:42:29
CString items = _T("111 222 333");

という文字列を対象に

CString a, b ,c にそれぞれ
a = "111", b = "222", c = "333" と格納したい場合は、どうすれば良いですか?
_stscanfを使いたいんですが、使い方がいまいち分かりまへん。

111 名前:デフォルトの名無しさん :2006/03/10(金) 11:55:46
>>110
CStringT::Tokenize

112 名前:デフォルトの名無しさん :2006/03/10(金) 12:02:47
有難うございます。
でも、ぐるぐる回すのではなく、一発で出来ないものでしょうか。

_stscanf(items, _T("%s %s %s"), a, b, c);
どうもこれだと、うまく取れないのですが

113 名前:デフォルトの名無しさん :2006/03/10(金) 12:20:39
CStringでデータ受けるなら

114 名前:112 :2006/03/10(金) 13:05:04
たびたびすいません。
有難うございました。TCHARの配列で受け取ることにします。

115 名前:デフォルトの名無しさん :2006/03/10(金) 18:39:43
1>マニフェストをリソースにコンパイルしています...
1>リンクしています...
1>マニフェストを埋め込んでいます...
1>プロジェクト : error PRJ0002 : エラーの結果 1 が 'C:\WINDOWS\system32\cmd.exe' より返されました。
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

VC2005でビルドするとこんなかんじでエラーします。
VC6では動いていたんですが・・・
どうすれば、ビルドできますか?

116 名前:デフォルトの名無しさん :2006/03/10(金) 18:48:03
その質問どっかで見た

117 名前:デフォルトの名無しさん :2006/03/10(金) 18:58:47
ハライテー

118 名前:デフォルトの名無しさん :2006/03/10(金) 19:50:57
>>117
つ正露丸

119 名前:デフォルトの名無しさん :2006/03/11(土) 00:50:00
>>115
マニフェストを埋め込んだ後エラーになっているのだから、
まずはマニフェストの埋め込みで何かが起こっていると考えるべきだ。

しかもVC6にマニフェストなんて無かった。
だからVC6では上手くいくのも説明が付きそうな気がするだろ。

120 名前:デフォルトの名無しさん :2006/03/11(土) 02:24:36
VC++6.0でMFC ActiveX Controlを作成し、Javascriptからメソッドを呼び出すように
したいのですが、動作させるマシンにより、動くマシンと動かないマシンが
出てきてしまいました。

・ActiveXはウィザードで作成し、そのままビルドしたもの。なのでメソッドはAboutBox()しかありません。
・HTMLはこんな感じです
<html>
<object id="hoge"
codebase="http://サーバURL/hoge.cab#version=1,0,0,1
classid="CLSID:クラスID>
</object>

<body onload=hogehoge()>
<sctipt language="javascript">
function hogehoge()
{
hoge.AboutBox();
}
</script>
</body>
</html>

121 名前:120 :2006/03/11(土) 02:25:07
で、上記HTMLを開くと、動くマシンでは当然バージョンダイアログが表示されるのですが、
動かないマシンだとランタイムエラー
「オブジェクトにてサポートされていないプロパティまたはメソッドです
コード:0」
が出力されてしまいます。

環境が違っているのかと思い、OSやIEのバージョン等調査したのですが、
どちらも同じでした。
ほかに問題があるとすると、どのあたりに原因があるのでしょうか?
教えてください。

ちなみに、環境は
OS:Windows2000 SP4
IE:Version6.0.2800.1106
IEパッチ:Q832894,Q831167,Q837009,Q867801,Q833989,Q903235
です。
もちろんインターネットオプションのセキュリティ等は設定済みです。
(信頼済みサイトにサーバを登録)

長々と書いて申し訳ありませんが、よろしくお願いいたします。
また板違いでしたらすみません。

122 名前:デフォルトの名無しさん :2006/03/11(土) 14:48:32
インクルードのパスなんですけど、
例えばプロジェクト全体が入っているのがHogeフォルダだとして、
この直下に.dswとか.dspとかが入ってます。
で、Hogeの中に直にヘッダやらソースが増えてきたので、
Hogeの中にフォルダをいくつか作ってその中にヘッダとソースを分野ごとに仕訳しました。
main.cppなどメイン部分をMainフォルダ、グラフィック部分はGraphフォルダ、といった具合にです。
そうした時に、Mainのフォルダに入っているソースから
Graphフォルダの中のヘッダなどをインクルードしようとしたときに
見つけられないみたいでコンパイルするとエラーになるのですが、
こういうときはどうやって#includeを書いたらよいでしょうか?

123 名前:デフォルトの名無しさん :2006/03/11(土) 14:52:09
>>122
DOSと同じ相対パス指定でおk

124 名前:デフォルトの名無しさん :2006/03/11(土) 15:06:42
>>123
あれ、いけました。すいませんありがとうございました。

125 名前:デフォルトの名無しさん :2006/03/11(土) 18:24:10
未だにVC6なんですけど、visualstudio2005とか買ったら
コンパイルエラーのメッセージとか
アホにも分かりやすく親切になってたりしますか?

126 名前:デフォルトの名無しさん :2006/03/11(土) 18:46:54
コンパイルエラーがアホみたいに出て来たりしてな

127 名前:デフォルトの名無しさん :2006/03/11(土) 18:51:13
アホイラネ

128 名前:デフォルトの名無しさん :2006/03/11(土) 21:20:50
スマポーのコードを例示してください。
本当に分からず、こまってます。
C++3版読んでもよく分かりません。


129 名前:デフォルトの名無しさん :2006/03/11(土) 21:53:22
質問です。

visual C++ 2005 Express を使い始めました。
PlaySound関数を使いたいので
リンカに「winmm.lib」を追加し、#include <Mmsystem.h>と書いてるんですが
ビルドすると
「fatal error C1083: include ファイルを開けません。'Mmsystem.h': No such file or directory」
になります。

いったいどうすれば良いのか途方にくれています。
どなたか教えてください。

130 名前:デフォルトの名無しさん :2006/03/11(土) 22:06:43
>>129
Mmsystem.hが本当にあるか調べる

131 名前:デフォルトの名無しさん :2006/03/11(土) 22:26:47
無いようです。
Mmsystem.hが無いとPlaySound関数は使えないのでしょうか?

132 名前:デフォルトの名無しさん :2006/03/11(土) 22:43:03
いいえ。

133 名前:デフォルトの名無しさん :2006/03/11(土) 22:46:54
>>129
Platform SDKはインストールしたか?

134 名前:デフォルトの名無しさん :2006/03/11(土) 22:57:30
>>133
なるほどこれですか。
さっそくDLします。ありがとうございます。

135 名前:129 :2006/03/12(日) 08:11:03
Platform SDKをインストールして
mmsystem.hもincludeさせたんですが、ビルドすると

>>error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

というエラーメッセージが大量に出てきます。
どうすればよいのでしょうか?

136 名前:デフォルトの名無しさん :2006/03/12(日) 09:04:06
なんだかよくわからんけど、
そのエラーになってる行のコードを貼り付けてみるとよいかもしれん。

137 名前:デフォルトの名無しさん :2006/03/12(日) 20:41:25
メンバにwstring m_wtext を持ってるクラスCHogeがあります。
CHogeのコンストラクタのなかで

m_wtext.empty();
m_wtext = L"あああ";
MessageBox(NULL,narrow(m_wtext).c_str(),"",NULL);

のようなことをしてみると、なぜか文字列がヘヘヘヘへ・・・・ンンンンのように既に壊れて表示されます。
narrowはCHogeの基底クラスで定義されている、wstringをstringに変換する関数です。

string CBase::narrow(const wstring& input) {
char* buffer = new char[input.size() * MB_CUR_MAX + 1];
wcstombs(buffer, input.c_str(), input.size() * MB_CUR_MAX + 1);
string result = buffer;
delete[] buffer;
return result;
}
別のもっと単純なアプリの中で同じ事を試しても問題はでないのですが、
なぜか今回ちょっと大きめなプロジェクトに組み込んでみたところおかしくなりました。
アプリごとの何かしらの動作順序の違いかなにかでこういうことは起こり得ることでしょうか?
でもコンストラクタのなかで関数を一個挟んだだけなのにアプリによって違いがでるというのは
理由がさっぱりわかりません。何かここが怪しげってところがあったら教えてください。
環境はW2k VC6.0++です。よろしくお願いします。

138 名前:137 :2006/03/12(日) 20:42:13
うわ、すいません、スレ間違えました。

139 名前:デフォルトの名無しさん :2006/03/14(火) 01:26:32
モードレスダイアログを呼び出したときに、
モーダルダイアログのように呼び出したダイアログ以外をロックしてしまい、
モードレスダイアログを常にトップに表示したいのですが、
どうするのがベストでしょうか。
今は、モードレスダイアログがときどき後ろに隠れてしまいます。

140 名前:デフォルトの名無しさん :2006/03/14(火) 01:34:20
EnableWindowかな

141 名前:デフォルトの名無しさん :2006/03/14(火) 07:33:46
EnableWindowで他窓無効化
SetForegroundWindow

ただし、いかなる場合でもEnableWindowで無効化を解除できるようにコーディングしろよ
さもないと、ダイアログ閉じたら二度とアプリが操作できなくなるからな

142 名前:デフォルトの名無しさん :2006/03/14(火) 10:08:01
モードレスでも親子なら裏にいかないよ

143 名前:デフォルトの名無しさん :2006/03/15(水) 22:48:40
2003のリソースエディタなんだけど、ツールバーのボタン削除ってどうやるの?
切り取りやDelしても消えないんだけど…

144 名前:143 :2006/03/15(水) 22:59:49
あ、ヘルプに書いてあった。枠外にD&Dすればいいのね。

145 名前:デフォルトの名無しさん :2006/03/16(木) 12:50:58
僕の人生もD&Dしたいです。
ていうかもうしてしまいました。
どうしたらいいですか?

146 名前:デフォルトの名無しさん :2006/03/16(木) 13:29:47
VS.NET2005で作業しています。
MFCでフォームビューのシングルドキュメントのアプリを作っています。
最初に作成されたウインドウに貼り付けたコントロールの類は正常動作するのですが、
そこから派生したダイアログ(ボタンを押して新たに出現するダイアログ)に貼り付けたコントロールが
うまく動いてくれません。

コンパイルは完了するのですが、
Debugモードでは
Debug Assertion failed!
と出て落ちてしまいます
Releaseモードでは
エラーこそ出ないものの、期待した動作一切が無視された状態です。

派生したダイアログを定義したクラス内に、リストなどのコントロール変数を宣言、
コンストラクタ内でそのダイアログ内のコントロール変数を利用して初期化。
この作業に入った瞬間にエラーが発生しているようです。

すみませんが、どなたかご教授願います。

147 名前:デフォルトの名無しさん :2006/03/16(木) 13:33:52
>>146
クラスオブジェクトが生成されただけではウィンドウは作成されていない。

148 名前:デフォルトの名無しさん :2006/03/16(木) 13:46:51
>147
ありがとうございます

ということは
ダイアログ.DoModal();
より後で、ダイアログが閉じるより前に
コントロール変数をいじるということでしょうか?

その場合は、ダイアログを定義したクラス内のどこに配置すれば、
ウインドウが開いた瞬間に適応されているように出来るのでしょうか。?

重ね重ね申し訳ありませんがお願いします。

149 名前:デフォルトの名無しさん :2006/03/16(木) 14:04:40
CDialog::OnInitDialog


150 名前:デフォルトの名無しさん :2006/03/16(木) 14:11:54
>147, 149

本当にありがとうございました、無事表示できました。

151 名前:デフォルトの名無しさん :2006/03/16(木) 22:57:04
CString cstr[1000][10][30];
CMyClassの中にtableのデータを1000件保持したいのですが、
使っても問題ないですか。


152 名前:デフォルトの名無しさん :2006/03/17(金) 00:02:36
>>151
つーかそれ、30万件の文字列ってなんだよ。
あっさりスタック食い潰しそうだからヒープに確保するようにして置けよ。

153 名前:139 :2006/03/17(金) 00:14:54
>140-141

遅くなりましたが、ありがとうございました。
無事に解決しました。

ところが、次の問題が出ていまして。
モードレスダイアログでOKボタンが連打できてしまうために、
処理が終わる前にまたOKが押されたときの処理をやろうとしてしまっているようで、
エラーが出ています。
OKが押されたらその処理が終わるまでOKが押せないようにするにはどうしたらよいでしょうか。
モードレスダイアログはDLLで表示していて、DLLのソースはいじれないので、
Exeで押さえ込まなければならないのですが。。。

154 名前:デフォルトの名無しさん :2006/03/17(金) 00:54:53
処理が終わるまでフラグかなんかで弾けばいいじゃない

155 名前:デフォルトの名無しさん :2006/03/17(金) 05:41:38
>>153

OKが押されてから、その処理が終わるまで、メッセージの発行をする処理を実行していないか?
例えば、コントロールに値を設定したり、メニューを変更したり。

基本的にメッセージループに飛び込まなければ次のメッセージは Pump されないはず。
ただ、DLLのソースの中でやられちゃってたらダメだから。
その場合は、>>154 のような逃げ技で…。

って感じ?


156 名前:デフォルトの名無しさん :2006/03/17(金) 06:58:50
OKボタン押された時の処理ってのはどっちでやってるんだ?
DLL側でやってるんならどうにもならん

157 名前:デフォルトの名無しさん :2006/03/18(土) 00:14:35
CStringの比較で==とCompareがありますが
どちらを使ったほうがいいのでしょうか?

158 名前:153 :2006/03/18(土) 00:54:35
OKボタン押された後の処理はEXEでやっています。
DLL側でOKボタン押されたらユーザメッセージを投げるので、
それを受けとったら処理が走ります。
EXE側でやってるのは、DLLで設定した内容を元にデータを作って通信しています。
通信部分はメソッドが確立しているので詳しく見ていないのですが、
おそらくwinsockかなんかで通信しているのだと思います。



159 名前:153続き :2006/03/18(土) 00:55:20
質問ばっかりで申し訳ないのですが、
今日、とりあえずリリースビルドを作ってみたところ、
モードレスダイアログの呼び出し部分でエラーになることがわかりました。
デバッグビルドでは問題ありません。
調べてみたところ、MSDNを見るとヒープの問題でこのようなことが起きることが多いようなのですが、
AfxCheckMemoryなどでチェックしても問題は特に出てきていません。
リリースビルド時の最適化を無効にすると問題ないことも分かりました。

動作の流れは
(1)コンストラクタでLoadLibrary。
(2)ダイアログを呼び出すメソッド内でモードレスダイアログをクリエイトする関数呼び出し。
(3)1つ目の質問部分で書いている処理が正常終了したらダイアログクローズ。異常ならそのまま。
(4)デストラクタでFreeLibrary。
となっています。
メッセージボックスを表示させる方法でチェックしたところ[1]部分でエラーとなっています。

typedef int (__stdcall *DLGCREATE)(const char* szString, UINT nNum)

DLGCREATE pDllCall = (DLGCREATE)GetProcAddress(m_hDll, "Create");
if (pDllCall != NULL){
 nRet = pDllCall(m_szString, 10);  ---[1]
}

コードに問題があると思うのですが、どこから手をつけていいのか分かりません。
これだけの情報では分からないことが多い(というかほとんど分からないと思う)のですが、
もしこのような問題に遭遇したことがあればそのときの解決の方法などを教えていただければと思います。
よろしくお願いします。

160 名前:デフォルトの名無しさん :2006/03/18(土) 09:14:36
>>159
そういうときは、まずエラーになる部分で各変数の値がどうなっているか確かめろ。

161 名前:デフォルトの名無しさん :2006/03/18(土) 10:47:38
VC6でダイアログを作って勉強中なのですが、
namespaceでコンパイルエラーになってしまいます。
namespaceの宣言やら関数を、呼び出すCdialog.cpp内に書くと問題ないのですが
自前のmyfunc.cpp内に書いて Cdialog.cpp内で呼び出すようにするとうまくいきません。

出来なかったりしまう?

162 名前:デフォルトの名無しさん :2006/03/18(土) 11:03:26
cppをインクルードすりゃいいかも

163 名前:デフォルトの名無しさん :2006/03/18(土) 11:07:46
>>161
もしやヘッダは?

164 名前:161 :2006/03/18(土) 11:28:15
(myfunc.cpp)

#include "stdafx.h"

namespace abc
{
 自作関数
};



(CDialog.cpp)

#include "stdafx.h"

using namespace abc;
  ・
  ・
 プロジェクト作成時に出来た関数等々
  ・
  ・
BOOL CDialog::OnInitDialog()
{
  自作関数
}

ざっくりこんな感じに書いてます。
エラーは↓とでます。
error C2871: 'abc' : 存在しないか名前空間ではありません。
error C2065: '自作関数' : 定義されていない識別子です。


165 名前:デフォルトの名無しさん :2006/03/18(土) 11:31:52
>>164
C++では他のファイルに書いたものはそのままでは使えない。
宣言によって名前が見えている必要がある。
だからヘッダを作ってそこに宣言を書き、ソースファイルで定義(実装)を書く。
そして使うファイルでヘッダをインクルードする。

166 名前:161 :2006/03/18(土) 11:46:14
>>165
やてみるよ姉貴!

167 名前:http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 18:51:43
TextSS の64bit化おながいします

もしくは64bitにネイティブ対応した置換ソフトないですか?

168 名前:デフォルトの名無しさん :2006/03/18(土) 22:17:12
今回Visual C++ 2005 Express Editionを入れてみて
ヘルプがみれるので嬉しいのですが
家にあるVisual C++6.0 のヘルプを呼び出すとMSDNのコレクションが無いと
表示されて、終わってしまうのですが
VC6++の場合は、html work shopで一から作らなければならないのでしょうか
それともどこからかダウンロードして、インストールしなければならないのでしょうか
よくわからないので、書き込みさして頂きました。
解る人がいればご教授願いたいです。

169 名前:デフォルトの名無しさん :2006/03/19(日) 08:51:24
>>168
意味がわからん。
VC++6のヘルプはVC++6についていただろう?

新しいMSDNはVC++6には対応していないので
VC++6のIDEからは呼び出せないがそういうことか?

170 名前:デフォルトの名無しさん :2006/03/19(日) 21:43:42
コンボボックスにリストから選択されたのではなく、
新たにキー入力された文字列を取得する方法を教えてください。

コンボボックスへ文字列入力→コマンドボタンでコンボボックスリストへ追加
の処理を作ろうとしているのですが、いきなり積まず息巻いた。


171 名前:デフォルトの名無しさん :2006/03/19(日) 21:58:55
>>170
getWindowText()で取れない?

172 名前:デフォルトの名無しさん :2006/03/19(日) 21:59:43
ttp://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/comboboxes/comboboxes.asp

173 名前:デフォルトの名無しさん :2006/03/19(日) 22:50:46
>>171-172
C++も初心者なもので継承に気が付かずコンボのメンバーしか
見てませんでした。
無事できましたm(_ _)m

174 名前:153 :2006/03/21(火) 13:31:24
一応報告を兼ねて。

解決しました。
/GZを使って調べたところ、呼び出し規約が違うって出てきました。
DLL側が__stdcallでは無かったようです。
__stdcallを削除したら問題なく動作しました。

ま、DLLが__stdcallだったとしても名前を装飾してなかったんで動かなかったと思いますが。。。

175 名前:デフォルトの名無しさん :2006/03/21(火) 19:04:04
なんだよそれ…。

でも、解決して良かったね。

176 名前:デフォルトの名無しさん :2006/03/21(火) 21:48:06
何がしたいという訳ではなく、単なる知的好奇心としての質問なのですが…。

コンパネの地域のオプションでシステムロケールを英語に設定した上で、非UNICODEアプリを実行すると、
メッセージボックス等の文字が化け化けになってしまいます。

非UNICODEで〜A系のAPI(MessageBoxA等)が使われているので当たり前なのですが、
なぜかメニューバーだけは文字化けせず、普通に日本語が表示されます。
なんでかなーとexeの中を覗いてみたところ、
非UNICODEでも、メニューバーで使用されている文字列はUNICODEで格納されているようなのです。
(VC++6.0、2005experessで確認)

リソース内の文字列って、常にUNICODEで扱われるのでしょうか。
もしそうだとしたら、Win9xの時代からずっとそんな仕様だったのでしょうか。



177 名前:デフォルトの名無しさん :2006/03/21(火) 23:25:34
>>176
そうだよ。

ついでに言うと文字列リソースもUnicodeで格納されている。
だが、それなのに9xではLoadStringWが機能しない。酷い仕打ちだ。

178 名前:176 :2006/03/22(水) 19:42:54
なるほど、ありがとうございます。
ヘンテコな仕様ですね。

そうすると、リソース内のUNICODEな文字列を
LoadStringAの内部でわざわざSJISに変換しているってことですね。

179 名前:デフォルトの名無しさん :2006/03/22(水) 23:38:46
Visual Studio .NET 2003 アカデミック
を買ったのですが、これは、シェアウェアや商用で利用してもいいのでしょうか?


180 名前:デフォルトの名無しさん :2006/03/22(水) 23:43:47
ライセンスを確り読むと答えが書いてあると思うよ。

181 名前:デフォルトの名無しさん :2006/03/22(水) 23:53:27
>>180

ありがとうございます。
ttp://www.microsoft.com/japan/education/ap/faq.mspx
に書いてありました。


しかし、会社で使用する場合、通常版を買い直さなければならない
と表記してありますが、個人でシェアを作成することは
かまわないと言うことなのでしょうか?

よろしくお願い致します

182 名前:デフォルトの名無しさん :2006/03/23(木) 09:05:22
なんでそういう事を2ちゃんで訊くかな。
M$に電話しろよ。

183 名前:デフォルトの名無しさん :2006/03/23(木) 12:30:12
Visual Studio 2003 アカデミックを使っているのですが、
VC++でなぜかデバッグよりもリリースでのビルドの時の方が
処理速度が大幅に遅くなってしまっていて、
なにが原因かわからず困っています。

状況としてはデバッグの時には50fps以上の速度が出ていたのに
リリースビルドした時には7fps程度しかでなくなってしまっているといった感じです。
色々と調べてみたところどうやら下記の部分が原因になっているようでした。
ang_cos, ang_sin, xtemp, ytempはdoubleで他の変数はintになっています。

x = (int)((j - length_temp) * ang_cos - xtemp + xbase);
y = (int)((j - length_temp) * ang_sin + ytemp + ybase);

どうも暗黙のうちに使われているらしいftolが怪しいのかなと考えているのですが…
ビルドオプションを色々と変えてみても解決することができませんでした。
何かご存じの方がいたら教えていただけないでしょうか?
よろしくお願いします。

184 名前:デフォルトの名無しさん :2006/03/23(木) 12:44:38
> 色々と調べてみたところどうやら下記の部分が原因になっているようでした
何故そういう結論になったの?


別のところに致命的な原因があるような気がするけど…
どこかの変数が初期化されてなくて云々…みたいな。

と個人的には思ってみる。

185 名前:デフォルトの名無しさん :2006/03/23(木) 12:56:01
IDEから実行した場合、exe直実行より遅くなった事があったような希ガス。

186 名前:デフォルトの名無しさん :2006/03/23(木) 13:08:48
>>183
すいません、説明不足でした。
DevPartner Profiler Community Editionを使って
処理に時間がかかっていた部分を調べてみたり、
x = (int)((j - length_temp) * 1 - 1 + xbase);
y = (int)((j - length_temp) * 1 + 1 + ybase);
と言うような風にした時は遅くなることがなかったからです。
x = (int)((j - length_temp) * 1.1 - 1.1 + xbase);
y = (int)((j - length_temp) * 1.1 + 1.1 + ybase);
と言うようにしてみた場合には処理が遅くなってしまいました。
x,yに直接適当な数値を入れてみた場合は遅くなることはありませんでした。

>>185
レスありがとうございます。
いま直接exeを実行してみたのですが、やはり速度は遅いままでした。


187 名前:183 :2006/03/23(木) 14:57:21
何度もすいません。
x = (int)((j - length_temp) * ang_cos - xtemp) + xbase;
y = (int)((j - length_temp) * ang_sin + ytemp) + ybase;
と言うようにしてみたところ、
リリースでもある程度の速度が出るようになりました。(40fpsくらい)
なぜか小数点以下の数値の扱いに違いがあるのですが…
ビルドの最適化オプションを変えてみても症状はかわりませんでしたが
最適化関連の問題なのでしょうか?

一応解決はできましたが原因がよくわからないので
何かご存じの方がいましたらお教えいただけると助かります。
よろしくお願いします。


188 名前:デフォルトの名無しさん :2006/03/23(木) 15:01:13
コードは見てみた?

189 名前:183 :2006/03/23(木) 15:19:16
>>188
コードというとアセンブリ言語の事でしょうか?
アセンブリ言語はよくわかっていないので
短くはなっているかな位にしか考えてませんでした。
>>183 の時のコードでは下記のようになっていました。
長文で申し訳ありません。

リリースビルドの時
x = (int)((j - length_temp) * ang_cos - xtemp + xbase);
00401DB0 fild dword ptr [esp+28h]
00401DB4 fld st(0)
00401DB6 fmul st,st(5)
00401DB8 fsub qword ptr [esp+38h]
00401DBC fadd st,st(3)
00401DBE call __ftol2 (406DD0h)

デバッグビルドの時
x = (int)((j - length_temp) * ang_cos - xtemp + xbase);
0043065B mov eax,dword ptr [j]
0043065E sub eax,dword ptr [length_temp]
00430661 mov dword ptr [ebp-0A0h],eax
00430667 fild dword ptr [ebp-0A0h]
0043066D fmul qword ptr [ang_cos]
00430670 fsub qword ptr [xtemp]
00430673 fiadd dword ptr [xbase]
00430676 call @ILT+3965(__ftol2) (42BF82h)
0043067B mov dword ptr [x],eax


190 名前:デフォルトの名無しさん :2006/03/23(木) 15:25:35
うちの VS20003 じゃ、ほぼ同じようなコード吐いてるけど
Release で偉い遅くなるような事は無いなぁ。


j って変数があるってことは、ループの中?
もしそうなら、実はループがおかしいとか。

191 名前:デフォルトの名無しさん :2006/03/23(木) 15:27:11
つかそれ、40fps出るほうのリリースビルドでは

192 名前:デフォルトの名無しさん :2006/03/23(木) 15:28:58
ああ、1.1 のとはまた別なのか、すまん

193 名前:183 :2006/03/23(木) 16:01:26
iとjのループの中にあります。
値を出力させて見たところリリースとデバッグでループ回数に違いはありませんでした。
ほかに気になるところと言ったらjpgとpngとzlibのライブラリをリンクしていることなどでしょうか?
全てマルチスレッドのDLLを使うようにしています。
とりあえずいま新しくソリューションを作って問題の部分だけを試してみています。

194 名前:デフォルトの名無しさん :2006/03/23(木) 16:53:32
原因がわかりました。
libpngにこんなようなコードが書いてあったので
もしやと思って削除してみたところリリースビルドでも
遅くなると言ったことはなくなりました。

#if (_MSC_VER >= 1300) && (WINVER < 0x0500)
//VC7 or later, building with pre-VC7 runtime libraries
extern long _ftol( double ); //defined by VC6 C libs
extern long _ftol2( double dblSource ) { return _ftol( dblSource ); }
#endif

ありがとうございました。
おかげ様で何とか検討つけて原因探すことができました。


195 名前:デフォルトの名無しさん :2006/03/23(木) 22:42:50
ODBC APIについて、他に適切なスレが見つからなかったので、
ここで質問させてください。

開発環境:Windows 2000、Visual C++ 6.0、ODBC 3.0、MSDE 2000 SP4

まず、下記のようなSQL文を作成し、SQLPrepareを実行しました。
UPDATE TestTable SET Field1=?
※Field1はCHAR型(30バイト)で、NULL値を許可されたフィールドです。

次に、パラメータにNULL値をバインドしたかったのですが、どうしても
うまくいきません。(UPDATE TestTable SET Field1=NULL を実行した
のと同じ結果にしたい、ということです。)

char szName[30 + 1];
strcpy(szName, "");
SQLINTEGER sNull = SQL_NULL_DATA;
として、
(続く)


196 名前:195 :2006/03/23(木) 22:43:35
(続き)
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
  SQL_C_CHAR, SQL_CHAR, 30, 0, NULL, sizeof(szName), &sNull);
とすると、SQLBindParameter自体は上手くいくのですが、SQLExecuteで
エラーとなり、エラー情報を取得すると
HY090 文字列長またはバッファ長が正しくありません。
が返ってきます。

また、
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
  SQL_C_CHAR, SQL_CHAR, 30, 0, szName, sizeof(szName), &sNull);
とすると、SQLExecuteもうまくいくのですが、Field1がNULLではなく、
30バイト分半角スペースで埋められたデータが格納されてしまいます。

おそらくSQLBindParameterの8番目のパラメータの指定の仕方がまずいの
だと思うのですが、どのようにすればよろしいでしょうか。

分かる方がいらっしゃいましたらお願いします。


197 名前:デフォルトの名無しさん :2006/03/23(木) 23:23:23
誤爆?

198 名前:デフォルトの名無しさん :2006/03/26(日) 10:47:32
.netでの画像の取り扱いについて教えてください。
win32APIでの透過GIFの扱いについてなのですが、どうも上手くいきません。

ググっても本当に情報が少なく困っております。助けて下さいorz

199 名前:デフォルトの名無しさん :2006/03/26(日) 12:02:14
ビットマップのマスク透過じゃいかん?
RLE圧縮すれば容量もそこそこ減らせる。
そういう問題じゃないとも思うが。

200 名前:デフォルトの名無しさん :2006/03/26(日) 12:57:50
>>199さん
画像っていざ本格的に扱うと難しいもので、とても参考になります。有難うございます。
ビットマップ画像の「ビットマップのマスク透過」で検討してみたいと思います。トンクスです。

201 名前:デフォルトの名無しさん :2006/03/26(日) 17:40:12
WaitForMultipleObjects に自動リセットのイベントオブジェクトを指すポインタ配列を渡して
"どれか 1 つがシグナル状態になったときに制御が返る"ようにしたとき、

(1) 制御が返ったとき、全ての自動リセットオブジェクトは非シグナル状態にリセットされる

(2) 制御が返ったとき、最初にシグナル状態になっていた自動リセットオブジェクトのみ
 非シグナル状態にリセットされる
 (配列の先頭から順にシグナル状態がチェックされるという仮定)

のどちらの動作になるのでしょう?

ご存知の方、ご教授ください

202 名前:デフォルトの名無しさん :2006/03/26(日) 18:19:10
なぜ試さないの?

203 名前:デフォルトの名無しさん :2006/03/26(日) 21:20:14
>>201
なんでMSDN読まないの?

204 名前:デフォルトの名無しさん :2006/03/26(日) 22:11:37
使用したclオプションとlinkオプションを取得したいのですがいい方法ありますか?
今は環境変数CL、LINKにオプションをセットしてgetenv_sしてるけど
もっといい方法があれば知りたいです。

205 名前:デフォルトの名無しさん :2006/03/28(火) 07:18:34
Visual C++で簡単なゲームのプログラミングをしているのですが、
debugバージョンの時にはちゃんと動くのですが、releaseバージョンの時には
ゲームのはじめの画面が少し映ってすぐに終了してしまいます。
なぜでしょうか?

206 名前:デフォルトの名無しさん :2006/03/28(火) 07:20:41
原因はバグです

207 名前:デフォルトの名無しさん :2006/03/28(火) 12:24:32
まず間違いなく自分のバグだ。

初期化してない変数を利用してる可能性が強い思う。
メンバ変数とか忘れがちなので確認してみるといい。

208 名前:デフォルトの名無しさん :2006/03/29(水) 21:01:28
あと自分が経験したのは、配列の領域を超えて書き込みしていたのに
Debugビルドではたまたま動いていたが、Releasビルドでは落ちたと
いうのがある。
たぶん配列の確保される領域が違ったんだと思う。

209 名前:デフォルトの名無しさん :2006/03/29(水) 21:04:56
境界越えでSEGVとかが投げられるのってレアケースだしな

210 名前:デフォルトの名無しさん :2006/03/30(木) 11:17:24
先生!質問です。
CWnd*から、コントロールのタイプ(Static Text, Check Box等)を判別するには、
どのようにすれば、可能ですか?

211 名前:デフォルトの名無しさん :2006/03/30(木) 11:26:37
GetRuntimeClass

212 名前:デフォルトの名無しさん :2006/03/30(木) 11:27:37
それだと一時オブジェクトの場合ダメじゃないか?

213 名前:デフォルトの名無しさん :2006/03/30(木) 11:32:32
サブクラス化されてたら100%判別不可能だな

214 名前:デフォルトの名無しさん :2006/03/30(木) 11:37:01
まあ悪あがきにはなるでしょ。

215 名前:210 :2006/03/30(木) 11:39:51
ありがとうございます。
判別したいコントロールは、サブクラス化してないので、
>>211さんの方法で出来ました。
それでは、あがいてきます。m(_ _)m

216 名前:デフォルトの名無しさん :2006/03/30(木) 11:41:39
禿ヲタなら「そんな設計する方が(ry」っていうんだろうね。

217 名前:デフォルトの名無しさん :2006/03/30(木) 15:57:09
dynamic_cast とか。

218 名前:デフォルトの名無しさん :2006/03/30(木) 16:26:28
RTTIとか

219 名前:デフォルトの名無しさん :2006/03/32(土) 09:57:13
3/32

220 名前:デフォルトの名無しさん :2006/03/32(土) 11:27:14
探してもメニューの物だけだったので質問させて下さい。
チェックボックスのオンオフをアクセスキー?でも出来るようにしたいのですが
ダイアログの場合だとキャプションで「&A」など指定あげれば勝手に実装されると思うんですが
ダイアログでは無くウィンドウ?に表示させてあるチェックボックスをアクセスキーでも切り替え可能にしたいんです
調べてもそんな関数は無いようなので作ってみたのですが
チェックボックスが選択中の枠で囲まれていない場合はキーで切り替え可能なのですが(周りの選択枠が出ないでチェックのみ変わります…これが原因の本丸っぽいですが…)
一度マウスで選択したあとでキーで切り替えが出来ない状態です…
コードはプローシャ内の上記部分です
switch (msg) {
case WM_COMMAND:
switch (LOWORD(wp)){
case ID_CHECKBOX:
break;
}
return 0;
case WM_KEYDOWN:
if (GetKeyState(VK_CONTROL) < 0)
if (BST_CHECKED == SendMessage(GetDlgItem(hWnd,ID_CHECKBOX), BM_GETCHECK, 0, 0))
CheckDlgButton(hWnd,ID_CHECKBOX,BST_UNCHECKED);
else
CheckDlgButton(hWnd,ID_CHECKBOX,BST_CHECKED);
return 0;
根本から違う気がしますが よろしくお願いします。

221 名前:デフォルトの名無しさん :2006/03/32(土) 12:00:57
読んでないけど

コントロールにフォーカスがあるとキー入力はそっちに行ってしまうから
キーメッセージをディスパッチする前に処理する仕組みが必要になる。
MFCやATL/WTLのPreTranslateMessageみたいなの。

222 名前:220 :2006/03/32(土) 13:16:45
"ディスパッチする前に処理する仕組み"という事で
メッセージループの方にWM_KEYDOWNの処理を入れたら出来ました
ありがとうございました

223 名前:デフォルトの名無しさん :2006/04/02(日) 20:29:23
プログラムに関する質問ではないんですが
最近久しぶりに.NET 2002でC言語書いてまして
エディタで宣言や定義を+-ボタンで折りたためる機能があった気がしたんですが
見当たらなくて、どうやって出すかわからなくなってしまいました
使ってる人少なそうだけどどなたかご存じないですか?
(もしかしたら勘違いか気のせい・・・?)

224 名前:デフォルトの名無しさん :2006/04/03(月) 23:21:54
はじめまして。Visual C++を勉強して3日目の超初心者です。
データ型に数値を格納する際、オーバーフローというエラーが出てしまいます。
デバックしてみると、変数に「5.011456E+09」が格納されています。
これは指数表記で、5011456000のことでしょうか?

225 名前:デフォルトの名無しさん :2006/04/03(月) 23:29:58
どんなプログラム作ったらそんなエラーがでるか見てみたいな

226 名前:デフォルトの名無しさん :2006/04/04(火) 09:10:59
>>224
そう

227 名前:デフォルトの名無しさん :2006/04/04(火) 13:50:35
マルチバイト文字作った奴を殴りたい

228 名前:デフォルトの名無しさん :2006/04/04(火) 15:27:10
    _, ,_  パーン
  ( ‘д‘)
   ⊂彡☆))Д´) ←>>227

229 名前:デフォルトの名無しさん :2006/04/04(火) 16:05:34
    _, ,_  パーン
  ( ‘д‘)
   ⊂彡☆))Д´) ←>>228

230 名前:デフォルトの名無しさん :2006/04/04(火) 16:16:48
    _, ,_  パーン
  ( ‘д‘)
   ⊂彡☆))Д´) ←>>229


231 名前:デフォルトの名無しさん :2006/04/04(火) 16:38:22
ケンカはやめて

232 名前:デフォルトの名無しさん :2006/04/04(火) 17:09:58
    _, ,_  パーン
  ( ‘д‘)
   ⊂彡☆))Д´) ←>>231

233 名前:デフォルトの名無しさん :2006/04/04(火) 18:22:59
二人を止めて

234 名前:デフォルトの名無しさん :2006/04/04(火) 18:27:20
    _, ,_  パーン
  ( ‘д‘)
   ⊂彡☆))Д´) ←>>234

235 名前:デフォルトの名無しさん :2006/04/04(火) 18:36:24
   _, ,_  パーン
  ( 'Д((☆
  ⊂彡
パーン _, ,_
  ☆))Д´)
    ミ⊃

   _, ,_
 (*))'Д´((*) ハァハァ…




俺に免じて二人ともケンカはやめて


236 名前:デフォルトの名無しさん :2006/04/04(火) 19:37:14
ここで、なんと、

      ●
     〜▲〜  オデンマ〜ン 登場!!!
      ■
      ハ

237 名前:デフォルトの名無しさん :2006/04/04(火) 19:38:15
    _, ,_  パーン
  ( ゜д゜)  
   ⊂彡☆======●
     〜▲〜
       ■
       ハ


238 名前:デフォルトの名無しさん :2006/04/04(火) 19:48:24
            パーン  _, ,_
                 (゜д゜ )  
      ●======☆ミ⊃
              ▲〜
          〜   ■
          〜  >>


239 名前:デフォルトの名無しさん :2006/04/04(火) 19:53:57
    _, ,_  パーン
  ( ゜д゜)  
   ⊂彡☆======●
     〜▲〜
       ■
       ハ


240 名前:デフォルトの名無しさん :2006/04/04(火) 20:04:44
            パーン  _, ,_
                 (゜д゜ )  
      ●======☆ミ⊃
              ▲〜
          〜   ■
          〜  >>

241 名前:デフォルトの名無しさん :2006/04/05(水) 15:33:03
私のために争わないで

242 名前:デフォルトの名無しさん :2006/04/05(水) 20:20:35
もう、何が何だか!?

243 名前:デフォルトの名無しさん :2006/04/15(土) 22:31:01
質問があるんですが、VC++とC++は違うんでしょうか?
いやですね、C++を学習するつもりで本を買ったのですがVC++を買ってました。
C++を学ぶならC++のやつを買いなおした方がいいでしょうか?
すいませんがあげさせてもらいます

244 名前:デフォルトの名無しさん :2006/04/15(土) 23:08:39
>>243
VC++は、C++言語を使ってアプリケーションを開発する
マイクロソフト製作・販売の統合開発環境ソフトの名称。

245 名前:デフォルトの名無しさん :2006/04/15(土) 23:19:19
マルチだったか。
答えて損した。

246 名前:デフォルトの名無しさん :2006/04/15(土) 23:19:31
>>244
ありがとございます
開発するということなので、どの道C++の知識がないとダメということですよね?


247 名前:デフォルトの名無しさん :2006/04/15(土) 23:22:41
日本語が分からずに日本語の小説かけると思うか?

248 名前:デフォルトの名無しさん :2006/04/15(土) 23:22:58
プログラムを組んでいる時に、APIを選択してF1を押すとそのAPIの説明のページが表示されます。
日本語の説明ページがあるのにもかかわらず、英語のページが表示されるのはどこの設定をかえればよいのでしょうか?

ずっと悩んでいるのでおねがいします。

249 名前:デフォルトの名無しさん :2006/04/15(土) 23:28:10
>>247
VC++でいいよって言う人もいるんですよぉ
何でもMSを使うからとか何とか。

250 名前:デフォルトの名無しさん :2006/04/15(土) 23:40:53
>>249
「MSを使う」ってなによ?
質問する前に日本語勉強してくれ。


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.