★初心者にVisual C++を教えるスレ★ Part16

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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するとか)
・ネタや煽りは軽く流しましょう。

【前スレ】
★初心者にVisual C++を教えるスレ★ Part15
http://pc5.2ch.net/test/read.cgi/tech/1097880265/

過去スレ、関連スレなどは>>2-5ぐらい。
2デフォルトの名無しさん:04/11/21 16:28:20
3デフォルトの名無しさん:04/11/21 16:29:11
【関連スレ】
■ MFC相談室 MFC12.dll■
http://pc5.2ch.net/test/read.cgi/tech/1096848771/l50

Win32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/

鬱だ氏のう DirectX (Part 15)
http://pc5.2ch.net/test/read.cgi/tech/1096649788/l50

C言語なら俺に聞け! Part 95
http://pc5.2ch.net/test/read.cgi/tech/1100951565/

C++相談室 part37
http://pc5.2ch.net/test/read.cgi/tech/1098543578/

プログラマー軍団がC/C++の宿題を解決します 34代目
http://pc5.2ch.net/test/read.cgi/tech/1100530682/

【初心者歓迎】C/C++室 Ver.11【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1099190154/
4デフォルトの名無しさん:04/11/21 16:29:47
5デフォルトの名無しさん:04/11/21 16:38:21

C や C++ の初心者はここじゃなくて、
C や C++ のスレに行った方が適切な回答がもらえるよ
6デフォルトの名無しさん:04/11/22 00:05:55
おぉ、ようやく立ったか。
乙!>>1
7デフォルトの名無しさん:04/11/22 09:39:58
8デフォルトの名無しさん:04/11/23 08:42:24
ファイルサイズの取得で困っています。
void CbitDlg::OnBnClickedButton3()
{
CString ss; OPENFILENAME ofn; char fn[MAX_PATH];
CFile f; int r; DWORD filesize; UINT *d;
fn[0] = '\0';
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.Flags = 0;
ofn.lpstrFile = fn;
ofn.nMaxFile = sizeof(fn);
ofn.lpstrFilter = "テキストファイル(*.txt)\0" "*.TXT\0" "すべてのファイル(*.*)\0" "*.*\0";
ofn.nFilterIndex = 1;
r = GetOpenFileName(&ofn);
if (r) {
if (ofn.Flags & OFN_READONLY) {
}
else {
if(fn == "") return;
if(!f.Open(fn,CFile::modeRead | CFile::typeBinary)) {
AfxMessageBox("読み込みファイルをオープンできません");
return;
}
filesize = FileSize(fn);
ss.Format("%d",filesize);
Edit1.SetWindowText(ss);
}
}
}
9デフォルトの名無しさん:04/11/23 08:43:30
DWORD CbitDlg::FileSize(LPSTR lpszFileName)
{
DWORDdwFileSize = 0;
HANDLEhFile = CreateFile(
lpszFileName,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if( hFile != INVALID_HANDLE_VALUE )
dwFileSize = GetFileSize( hFile, NULL );
CloseHandle( hFile );

return dwFileSize;
}
108-9:04/11/23 08:47:37
上記を実行するとfilesizeが、自分で実行した限り、必ず0になってしまいます。
void CbitDlg::OnBnClickedButton3()
{
char path[MAX_PATH];
CString fs;
DWORD filesize;

Edit1.GetWindowText(path,MAX_PATH);
filesize = FileSize(path);
fs.Format("%d",filesize);
Edit2.SetWindowText(fs);
return;
}
こういうやり方だと正常に取得できるんですが、もう何がなんだかよくわかりません…
11デフォルトの名無しさん:04/11/23 10:16:51
HANDLEhFile = CreateFile(

ファイル壊してねえ?
128-9:04/11/23 11:48:23
>>11
あんまり意味を理解しないでやっていたのでよく分からないのですが、
>HANDLEhFile = CreateFile
のところで
GENERIC_READ,
OPEN_EXISTING,
と指定しているので、既存のファイルを読み取りアクセスする、
という風に捉えていたのですが、違うんでしょうか?
こんなことしなくても別のやり方で取得するやり方があるんでしょうか…?
13デフォルトの名無しさん:04/11/23 15:13:11
とりあえず、
if(fn == "") return; // ほぼ確実にfalse

あと、CFile が ファイルオープンしてるから、(共有フラグを立ててないから)
FileSize() の CreateFileが失敗しているのではないかと思ってみる。
14デフォルトの名無しさん:04/11/23 19:22:08
コンパイルしたファイルをインクルードされたヘッダファイル
等全て展開されたモノを見ることってできないのでしょうか?
それを見てエラーを特定したいのですが。
その見る行為に当たる専門用語が分からなくて検索しても
見つからないです。(有るのかさえも分からないのですが。。。)
検索語句だけでも教えて頂けませんでしょうか。
15モウモウ:04/11/23 19:26:49
>>14
コンパイラのオプションで設定する。
VC6 なら /P /EP とかそういうのだったかな。
16デフォルトの名無しさん:04/11/23 19:38:56
お前が書いたコードが間違ってるに1億ペソ
ライブラリのヘッダまで追いかけてもしょうがないと思う
17デフォルトの名無しさん:04/11/23 21:43:13
教えてげそ
漏れのVCのデバッグウィンドウにいつも間にか

プロジェクト名: WndProc: hwnd=0x430360, msg = WM_DESTROY (0x0000, 0x00000000)

みたいな出力が出まくって、本来のトレース文が埋もれてしまってデバッグできなくなったの
でつが、これって何が原因なのでつか(´・ω・`)
特に何かした覚えはないのでつが。。。
18デフォルトの名無しさん:04/11/23 22:56:16
>>15
コンパイラのオプションなんて使った事無かったです。
警告レベルもここで設定できるようで。
他にも興味深そうなことがいろいろある。なんか得した感じです。
下手な説明なのに適切なレスに感謝です。ありがとうございました。
19デフォルトの名無しさん:04/11/24 19:51:28
引数に文字型って使えますよね…
20デフォルトの名無しさん:04/11/24 21:09:31
使えますよ…
218-9:04/11/25 07:30:53
>>13
遅レスですがレスありがとうございます!
CFileをオープンする前にCreateFileしてみたら
ちゃんと成功しました。
22デフォルトの名無しさん:04/11/25 11:29:31
外部で作ったツールバー用のビットマップ(24ビット)をインポートして使おうとしたんですけど
ビットマップのほうにインポートされてしまってツールバーとして認識しないんですが
VCは付属のやつで作ったやつでしかツールバーって作れないんでしょうか?

ちなみにVC++6.0、MFCは使っていません
23デフォルトの名無しさん:04/11/25 14:36:47
>>22
24ビットはやったことないけど
ビットマップは好きなの使えるよ
デフォルトだとtoolbar.bmpとかいうのがあるから
それを置き換えるとか
24デフォルトの名無しさん:04/11/25 15:00:30
HDCのサイズを取得しようとしているのですが、
そもそもHDCにはサイズという概念が無いのでしょうか。
無かったら諦めて別の方法にします。
25デフォルトの名無しさん:04/11/25 15:21:47
HDCはDCのハンドルだからポインタだろう
26デフォルトの名無しさん:04/11/25 16:32:00
>>24
サイズという概念は無い。
ウィンドウのならGetClientRectとかが代わりになるかも。

>>25
そういう問題じゃないだろう。
2724:04/11/25 21:01:57
>>25 >>26
レスどうもありがとうございました。
不可能のようなのでサイズデータを直接持ってきて
取得しました。単純な解決方法ですが...
2822:04/11/26 00:18:01
>>23
ありがとうございます
けど、まだうまくいってません・・・
29デフォルトの名無しさん:04/11/26 13:49:39
VisualC++6.0でDDKに含まれているヘッダファイルをインクルードしたのですが、
インクルードディレクトリの指定は何処でするのでしょうか?
-Ic:\ddk\inc みたいな指定です。

アドバイスお願いします。
30デフォルトの名無しさん:04/11/26 14:10:47
ハンドルだからポインタ
ハンドルだからポインタ
ハンドルだからポインタ
ハンドルだからポインタ
ハンドルだからポインタ
ハンドルだからポインタ
31デフォルトの名無しさん:04/11/26 14:12:19
VC++.netについて超初心的な質問です。
OSはXPでWindowフォームアプリケーションってのを使ってるんですが
buttonを押して指定した文字をLabelに表示するプログラム教えてください。
おながいしますorz
32デフォルトの名無しさん:04/11/26 14:49:57
>>31
めんどくさいからチュートリアル載せてるサイト探すことをお勧め。
33デフォルトの名無しさん:04/11/26 17:48:45
ツールバーのアイコンを押した後、そのアイコンの背景が凹んで、今アイコンが
選択されてるとわかるようにしたいのですが。
教えてください。
34デフォルトの名無しさん:04/11/26 18:17:19
UPDATE_COMMAND_UIハンドラに次の2行を追加する。
pCmdUI->Enable( TRUE );
pCmdUI->SetCheck( TRUE );
ハンドラがなければMFCクラスウィザードで作成。
35デフォルトの名無しさん:04/11/26 18:32:27
>>34
それメニューにチェックつけるんだよね
36デフォルトの名無しさん:04/11/26 18:37:35
もしツールバーボタンとメニュアイテムが同じ
コマンドID使ってたらチェックつく。
37デフォルトの名無しさん:04/11/26 19:45:23
はじめまして〜
.net のC++で画面付のDLLの作成をすることになったのですが、
画面呼び出しのexe(MFCアプリ)と画面付DLL(拡張MFCDLL)
を作成したのですが、うまく表示することができません。
どうすればいいか教えてください。

私がしたのは、exeはボタンだけ配置して、DLLの関数の呼び出しを行いました。
呼び出しはこんなかんじ
__declspec(dllexport)void _main_show(void);

DLLの方は画面を作って、
void main_form::main_show(void)
{
main_form::ShowWindow(1);//よくわからないので、とりあえず、1入れてみました
}
この状態で、画面がでてきません。
一応、私がしたことを書きます。
変なことしてると思いますが・・・
DLLの方は、新規作成して、リソースの追加でダイアログを追加して、
エディットボックスを右クリックして、クラスの追加でmain_formを追加しました。
このとき、コンパイルすると、main_form.cppに#include "test1.h"
(プロジェクトの作成時名前がtest1です)
でエラーがでたため、test1.hは新規にMFCアプリをつくってできた
ヘッダーをコピーして貼り付けたら動くようになりました。

basicはちょっとしたことあるけどC++は初めてなのでわからないです。
解決方法をおしえてください。よろしくおねがいします。
38デフォルトの名無しさん:04/11/26 21:20:25
救いようが無い
39デフォルトの名無しさん:04/11/26 22:27:57
ものすごく初歩的なことで困ってます・・・
Visual Stdio.netを何故か知らないけど買っちゃったのですが、学校でやる初歩的なプログラム(?)の実行方法がわかりません
こんな感じのプログラムです
#include <stdio.h>
main()

{
   /*変数の宣言*/
   int ten;
   printf("点数を入れてください ");
   scanf("%d", &ten);
   if( ten>=60 )    printf("合格");
   else if(ten>=30) printf("再試験");
   else printf("不合格");
}
どうしたらいいか教えてください
40デフォルトの名無しさん:04/11/26 22:31:29
マニュアルを読め、F5を押せ、吊ってこい
41デフォルトの名無しさん:04/11/26 22:35:33
>>39
そんなゴミつくるのにわざわざ金出して買ったのか
そのレベルなら無料のやつでおつりが来るぞ
42デフォルトの名無しさん:04/11/27 00:21:28
「とりあえず、1入れてみました」っていう発想が面白い...
43デフォルトの名無しさん:04/11/27 12:23:15
iという変数をファイルに保存したいのですが
int i;
HFILE hfl;
DWORD readsize,writesize;
hfl=CreateFile("D:\\fl",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
ReadFile(hfl,&i,sizeof(i),&readsize,NULL);
(この間にiの値をいじる)
WriteFile(hfl,&i,sizeof(i),&writesize,NULL);
CloseHandle(hfl);

とやると初めてプログラムを終了したときのiの値は保存されるのですが
2回目以降の終了時の値が保存されない(1回目のまま)のですがどこが間違っているのでしょうか?
44デフォルトの名無しさん:04/11/27 13:14:39
>>43
全然関係ないがCreateFileはHANDLE型を返すからhflもHANDLE型にしろ。
4543:04/11/27 13:21:53
ああ、書き間違えました。ちゃんとHANDLE型にしてます。
46デフォルトの名無しさん:04/11/27 17:03:15
>>43
> (この間にiの値をいじる)
でiが変わってないと予想
47デフォルトの名無しさん:04/11/27 21:58:06
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\U\Office10\Office10\EXCEL.EXE" \
  rename("DialogBox", "DialogBoxForExcel") \
  rename("RGB", "RGBForExcel")
のように記述し、VC でExcel 操作のツールを作成しています。

これを会社で使いたい(単に自分用に)と思うのですが、実は環境が
・自宅のPC:OfficeXP
・会社の自分のPC:Office2000
なのです。
このツールは、会社のPC でも動くのでしょうか?
それとも会社のPCでコンパイルし直さないと動かないでしょうか?

現在、会社の自分のPCはまだ来ておらず、試せない状況です。
また、この自作ツールを会社のPCで使うこと自体はOKですが、
コンパイラ(VC)を入れるのはNGといわれました。
4847:04/11/27 22:07:42
<補足>
vbs や js などでは、
ExcelApp = new ActiveXObject("Excel.Application");
のように記述すれば、Office のバージョンを問わすにある程度は動くと思います。

VC でもこのような、Office のバージョンを問わすに記述することは
可能でしょうか?
上記の #import に書く方法だと、Office10(XP)限定のような気がして、
Office9(2000)の環境で動くか心配だというのが質問の主旨です。

長くなりすみません。
4943:04/11/27 22:51:49
>>46
いや、それだと一回目(の保存)はうまくいく説明がつきません。
50デフォルトの名無しさん:04/11/27 23:11:38
>>49
2回目以降も書いてるが、値が変わってないので変化が無く
保存されているように見えない、ってことじゃないのか?
51デフォルトの名無しさん:04/11/28 02:16:27
52デフォルトの名無しさん:04/11/28 14:16:06
ウィンドウプロシージャってどこ呼ばれているんですか?
CALL BACKって割り込みのことだろうと思うんですが、いつ割り込んで来るんでくるんでしょうか。
猫でも分かるプログラミング見たけど、流れがつかめない僕は猫以下かもしれません。
53デフォルトの名無しさん:04/11/28 14:29:47
>>52
メッセージ
54デフォルトの名無しさん:04/11/28 15:05:07
DispatchMessage?
55デフォルトの名無しさん:04/11/28 17:47:29
>>52
ウィンドウプロシージャはWindowsが呼び出す。だからCALLBACK
56デフォルトの名無しさん:04/11/28 18:35:47
猫以下も猫以上も無いと思う。人間と動物の比較なんて無意味。
プログラムのことで猫を持ち出すなんて、
話のネタにされた猫族は陰口を叩かれているようなもの。
ネコクン「プログラムやるのは勝手だけど、それをボクら
とくらべるなんてあんまりだよ。」

独り言なんで、気を悪くしないで。。。
57デフォルトの名無しさん:04/11/28 19:29:21
>>55
けど、DispatchMessageでウィンドウプロシージャに送るって書いてあったよ。
58デフォルトの名無しさん:04/11/28 21:09:58
>>57
postされたメッセージはそうだけどsendされたメッセージは違う。
59デフォルトの名無しさん:04/11/29 00:17:56
んー・・・今一つ分からないんですが、メッセージキューってのは、
各ウィンドウに領域が確保されているんものなんですか?
60デフォルトの名無しさん:04/11/29 00:40:59
61デフォルトの名無しさん:04/11/29 02:34:36
英語がわかるほどの頭なら、ここまで苦労してません。
誰か和訳お願いします。
62デフォルトの名無しさん:04/11/29 08:40:35
>>61
アメリカ人ならガキでも読める。つまりあんたはガキ以下か。
63デフォルトの名無しさん:04/11/29 09:08:38
アメリカ人のガキは読めても理解できないがな。
64デフォルトの名無しさん:04/11/29 09:22:13
VC++.NET2003です。

MFCアプリケーションを作ろうと思うのですが、
ウィザードからプロジェクトを生成すると必ずウィンドウが
ついてきますよね?(SDI or MDI or ダイアログ)
ウィンドウを無くすのにいい方法はありませんか?
65デフォルトの名無しさん:04/11/29 09:34:35
66デフォルトの名無しさん:04/11/29 09:41:30
ここは★初心者にVisual C++を教えるスレ★じゃなかったの?
67デフォルトの名無しさん:04/11/29 11:09:07
>>66
だから入門書の範囲内で質問しろ
子供電話相談室じゃないんだぞ
68デフォルトの名無しさん:04/11/29 15:02:17
>>57
DispatchMessageはWindowsが用意している物なんだから、
「DispatchMessageがウィンドウプロシージャを呼ぶ」ってことは「Windowsがウィンドウプロシージャを呼ぶ」と言えるんだよ。
SendMessageも同様。
6964:04/11/29 16:54:38
>>65
まじでありがとうございました。
無事ダイアログをスマートに消せました。感謝。
70デフォルトの名無しさん:04/11/29 18:32:24
>cl : コマンド ライン error D2016 : コマンド ライン オプション '/QI0f' と '/arch:SSE' は同時に指定できません


SSEを有効にするときはPentiumのバグに目をつむれということでしょうか。
よろしくおねがいします。
71デフォルトの名無しさん:04/11/29 18:40:47
>>70
チラシの裏にでもかいとけ
72デフォルトの名無しさん:04/11/29 19:17:50
>>70
SSE使えるプロセッサに例のバグはないからいいんじゃないの?
73デフォルトの名無しさん:04/11/30 14:17:24
すみません、マウスでクライアント領域をクリックして、
クリックされた2箇所のポイントを線で結ぶプログラムを
作っているのですが、
その点と点を結んだ線がクライアント領域内に書かれた
他の閉じた図形の内部を通過しているかどうかを調べるには
どうすればよいでしょうか。PtInRect等で
少しずつ調べるしかないのでしょうか。
74デフォルトの名無しさん:04/11/30 15:20:02
>>73
その「閉じた図形」がどんなデータ構造してるのかわかんないのでハッキリ云えないけど
「線分が図形を通過してる」っていえば数学的には
二つ以上の交点求まればよさそうじゃない?
多角形相手に内包まで認めたりすると少々うっとうしそうな気がするけどそこは気合いで。
VCと関係ないな。
75デフォルトの名無しさん:04/11/30 15:28:44
あっ
星型図形のひだりあし内部始点のみぎあし内部終端とかだと通過したことになんないか
交点が2の場合始点が図形の外部であるチェックが必要だ


…なんかそんな話じゃないような気もしてきた
76デフォルトの名無しさん:04/11/30 15:30:44
>>74
レス有難うございました、VisualC++固有の質問じゃなかったですね。
出直してきます、失礼しました。
77デフォルトの名無しさん:04/12/01 15:28:53
.NET 2002です。
エディタ上でユーザー定義の型やクラスに色をつける方法を教えていただきたいです。
78デフォルトの名無しさん:04/12/01 17:04:21
それを知ってるということは、
やりかた忘れたけど調べるのめんどくさいということか?

そこまで知ってたら調べればすぐわかるはず
7947:04/12/01 23:13:46
いまさらですが解決したので報告します。
はじめにファイルをreadしたあといったんCloseHandleで閉じて
writeの前にもう一度開きなおすとうまくいきました。
何故これでうまくいくのかはよくわかりませんが(汗
80デフォルトの名無しさん:04/12/02 14:52:20
1日前の日付、2日前の日付とかを算出するのってどうやるんでしょうか?

日付を数値データとして除算してもできませんよね
例) 2004年12月1日
int a = 20041201;
a - 1 ←これやっても20041130とはなりません。当たり前ですが(汗)
81デフォルトの名無しさん:04/12/02 15:11:20
>>80
SYSTEMTIME構造体を使えばいいんじゃない?
82デフォルトの名無しさん:04/12/02 15:29:45
>>80
#include <stdio.h>
#include <time.h>

int main(void)
{
time_t before;
time_t now = time(NULL);/* 現在時刻 */
struct tm tm;
struct tm * tmp;
char buf[12];
tm = * localtime(& now);/* ばらし */
tm.tm_mday -= 5;/* 今日の5日前 */
before = mktime(& tm);/* 組み立て */
tmp = localtime(& before);/* もっかいばらし */
strftime(buf, sizeof(buf), "%Y%m%d", tmp);/* 文字列に変換 */
printf("%s\n", buf);
return 0;
}
8380:04/12/02 16:50:59
>>81
>>82
無事できました。
#カレンダーを内部でもって・・・とか
#頭の悪いことを考えていました。

ありがとうございました!
84デフォルトの名無しさん:04/12/02 17:09:48
VC++6.0 proを使っています。

ファイル >> 新規作成 >> プロジェクト
で、プロジェクトの種類(Win32アプリとかコンソールとかMFCアプリだとか)を選択できますよね?
このリスト&生成されるワークスペースのファイルを追加・編集するにはどうしたら良いでしょうか。

インストールディレクトリ全体から、「Win32 Application」等の文字列を探せばひっかかるかなー?
とか思ってたんですけど、無理っぽ。
85デフォルトの名無しさん:04/12/02 17:20:44
Custom AppWizard
8684:04/12/02 17:31:40
>>85
サンクス。
これから色々試してみます。



……と思ったら、けっこうマンドクセ
まあ、やるしかないわけだが。
87デフォルトの名無しさん:04/12/02 23:10:53
VC++6.0でビルドを行うとwarningはありますが、
エラーは出てない状態で「cl.exeの実行エラー」と
表示されビルドできません。どのような原因が考えられますか?
心あたりのある方、是非教えてください。
88デフォルトの名無しさん:04/12/03 18:35:07
エラーでてんじゃん(ぼそ
cl.exeってリンカだっけ? externとかそっち系だったりしてね。

ていうかエラーメッセージ全部出してみたら?
89デフォルトの名無しさん:04/12/03 18:45:30
>>88
アホは黙ってろ
90デフォルトの名無しさん:04/12/03 20:07:10
>>87
それだけだと答えようがない。
「cl.exeの実行エラー」でググれば原因がいくつか出てくる。

>>88
アホは黙ってろ
91デフォルトの名無しさん:04/12/04 18:45:17
Visual C++とC#は違う言語ですか?

Visual C++の勉強にはどの本がお勧めですか
92デフォルトの名無しさん:04/12/04 18:57:24
ソース探せ
検索すればいくらでも出てくる
そこから違うかどうかわかるだろ

あと、そのくらいの違いもわからなけりゃ"VisualC++というソフト"を使い切れないだろう
関連書籍を買ったとしても途中で挫折が目に見えてる

まずはC言語からはじめるべし
93デフォルトの名無しさん:04/12/04 19:10:42
VisualC++6を使っているのですが、sambaで共有したドライブにソースを置いて
コンパイルしようとすると、コンパイルできないのですが、
どなたか解決方法をご存じないでしょうか。
エラーは次のようなものです。
d:\cpp_qt\qt-2.3.0win\include\qvaluelist.h(415) : fatal error C1001: 内部コンパイラ エラー
(コンパイラ ファイル 'E:\8966\vc98\p2\src\P2\p2symtab.c', 行番号 932)

Qtというライブラリを使ってプログラミングしているのですが、Qtは直接的には関係ありません。
STLライブラリが関係してるような気がしますが、
ローカルドライブだとコンパイルできるので、やはり共有ドライブの問題なのでしょう。

環境は次のようなものです。
Windows機:Windows2000sp4 VisualC++6sp5
Linux機:PlamoLinux3.3 samba2.2.8
94デフォルトの名無しさん:04/12/04 19:16:27
UNC
95デフォルトの名無しさん:04/12/04 19:20:39
>>93
頭わるすぎ
こういう馬鹿が作ったプログラムを使う人間がかわいそう
9693:04/12/04 19:36:20
初心者なんだから頭が悪いのは仕方ないだろ。
だいたいここは、そういう人間に教えてくれるスレじゃないのか?
97デフォルトの名無しさん:04/12/04 19:46:59
初心者だって頭のいい香具師はいる。

それはさておき、ディレクトリのパーミッションがないなんて落ちはないよな?
98デフォルトの名無しさん:04/12/04 19:48:00
質問する前に自分で確認出来ることあるだろ
samba疑ってたりSTL疑ってるならそれらを変えるなりなんなりできるだろうが

そもそもVC6を疑ってないようにも見えるが、
それがそもそもの間違いだと思うが
99デフォルトの名無しさん:04/12/04 20:44:07
>どなたか解決方法をご存じないでしょうか。
>ローカルドライブだとコンパイルできるので、やはり共有ドライブの
>問題なのでしょう。

自力で問題解決しているのでは?
100デフォルトの名無しさん:04/12/04 22:28:01
&H64
101デフォルトの名無しさん:04/12/04 22:40:28
質問です。

VBのShellの様にMFCアプリケーションから別EXEを立ち上げたいのですが、
それは可能ですか?
102デフォルトの名無しさん:04/12/04 22:41:41
>>101
CreateProcessなりShellExecuteなりなんなり。
103デフォルトの名無しさん:04/12/04 22:46:11
ありがとうございます。
調べてみます。

また、別EXEを起動してそれのプロセスが停止したかどうかを監視
したいのですがそれも出来るのでしょうか?
104デフォルトの名無しさん:04/12/04 22:49:48
CreateProcessで起動し、終了したか確かめるだけならWaitForSingleObjectのタイムアウトを0にして呼び出す。
105デフォルトの名無しさん:04/12/04 22:52:05
ありがとうございます。

タスク常駐プログラムを作成しようと思うのですが、それで行って
みようと思います。
106デフォルトの名無しさん:04/12/05 22:45:16
>>93
お前まさかイニシャルがT.Kじゃないよな?
107デフォルトの名無しさん:04/12/06 10:47:08
VC.NETでCのstrlen()を使っているのですが、
なぜか値を返してくれません。
デバッグしてクイックウォッチで見てみると

 "CXX0017: エラーです : シンボル "strlen" が見つかりません"

と表示されます。原因わかるかたいますか?
string.hはインクルードしています。
ビルドしてもエラーや警告はでないです。
108デフォルトの名無しさん:04/12/06 10:55:47
>>107
ビルドの出力見ている?
少なくとも成功か失敗かは出力されているわけだが。
109106:04/12/06 10:59:28
>>108
はい、見ています。
ビルド : 1 正常終了、0 失敗、0 スキップ
と出力されており警告もでていません・・・。

strlen()ってstring.hをインクルードすれば普通使えますよね?;
110デフォルトの名無しさん:04/12/06 10:59:45
関数と変数を混同してる予感
Cを勉強しなおせ
111デフォルトの名無しさん:04/12/06 11:11:11
式エバリュエータ エラー CXX0017
シンボルが見つかりません
式中で使用されているシンボルが存在しません。

このエラーは、デバッグ中に変数を監視しようとして
変数の型キャストを試みると発生することがあります。
112106:04/12/06 11:16:08
>>111
strlenの戻りがsize_t型でウォッチに失敗していたんですね・・・
ためしにstrlenの結果をint型の変数に代入させたら
ちゃんと取得できていました・・・。
お騒がせしました。ありがとうございました。
113デフォルトの名無しさん:04/12/06 16:27:49
DDK初心者です。
USBデバイスを取り外すプログラムを、
CM_Request_Device_Eject関数を使用して作成しました。
スタンドアロンでは問題ないのですが、サービスから起動すると、
CM_Request_Device_Eject関数がエラーを返してきます。
エラーメッセージをみると、
"ネットワーク パスが見つかりません。ネットワーク パスが正しく、宛先のコンピュータがビジー状態ではなくオンになっていることを確認してください。それでもネットワーク パスが検出されない場合は、ネットワーク管理者に問い合わせてください。"と表示されています。
どなたか現象がわかる方はいらっしゃいませんか?
114デフォルトの名無しさん:04/12/06 18:30:23
VC++6.0
ビットマップリソースを読み込んでDIBとして扱うにはどうすればよいのでしょうか?
115デフォルトの名無しさん:04/12/06 18:30:55
VC++6.0
ビットマップリソースを読み込んでDIBとして扱うにはどうすればよいのでしょうか?
116デフォルトの名無しさん:04/12/06 18:32:00
VC++6.0
ビットマップリソースを読み込んでDIBとして扱うにはどうすればよいのでしょうか?
117デフォルトの名無しさん:04/12/06 18:36:17
>>115
それを何行で説明すんの?
118デフォルトの名無しさん:04/12/06 21:51:54
>>117
結局だれもわからないとか
119デフォルトの名無しさん:04/12/06 22:14:19
>>118
教えるのに1時間以上かかるとしたら?
120デフォルトの名無しさん:04/12/06 22:40:50
VC++について1から詳しく教えてください。
121デフォルトの名無しさん:04/12/06 23:12:53
このスレを「1〜」よく嫁ばいいんじゃないかな?
122デフォルトの名無しさん:04/12/08 02:38:57
某所でも質問したのですが回答が得られなかったので・・・
VisualC++.netでプログラミングの勉強をしているのですが「変数の追加」で
追加した変数を簡単に削除するにはどうしたらいいのでしょうか?
6.0だと表示メニューのClassWizardから削除できるみたいなのですが.netだと見つからないので・・・
123デフォルトの名無しさん:04/12/08 05:40:10
.net2003をカスタマイズしているのですが
メニューバーに分類を追加するにはどうすればいいのでしょうか?
124デフォルトの名無しさん:04/12/08 08:07:18
>>122
普通にエディタで削除したら?
125デフォルトの名無しさん:04/12/08 15:10:25
VC6.0(SP6)を使っています。

これで普通にビルドするとCPUが2個あっても1個しか使ってくれません。
Linuxのように2個のCPUで倍速でビルドする方法はありませんか?
126デフォルトの名無しさん:04/12/08 15:16:12
>>125
初心者ならそれで十分
127デフォルトの名無しさん:04/12/08 15:19:46
>>125
そんなに遅いなら新しいパソコンに買い替えな
128デフォルトの名無しさん:04/12/08 19:49:04
>>125
M$に要望出せ
129125:04/12/08 23:29:38
(´・ω・`)ショボーン

あきらめます。
130デフォルトの名無しさん:04/12/09 01:08:21
つーか、コンパイル単位がでかいのが問題だったりしない?
毎回毎回フルビルドし直すわけじゃないだろうし、その辺見直したら?
131デフォルトの名無しさん:04/12/09 01:20:45
ここでのいいのかわかりませんが、質問させてください。

ある文字列をCStringArrayに追加していきます。
でも、同じ文字列は追加したくありません。
そのため、追加する際に
CStringArrayの要素を頭から1個ずつ比較しています。
この時に線形検索しているのですが、
前提条件無しで最も早い検索方法はやはり線形でしょうか?

もし、前提無しで早い検索があれば教えてください。
お願いします。
132デフォルトの名無しさん:04/12/09 01:31:48
デカいプログラムだったらコンパイル何時間も掛かったりするの?
133デフォルトの名無しさん:04/12/09 01:43:33
>>131
うん。

>>132
うん。
134デフォルトの名無しさん:04/12/09 01:48:12
VC++6.0ってもう古いですか?
VC++netに買い換えようか迷ってます。
135デフォルトの名無しさん:04/12/09 01:49:38
>>134
うん。
136デフォルトの名無しさん:04/12/09 01:52:22
VC++netに買い換えたら
VC++6.0に戻ろうか迷うよ。
137134:04/12/09 02:06:18
数年前、やっとVC++6.0を手に入れたのに
分け蟻で初心者のまま今日まで過ごしてしまったのでどうしようか迷ってましたが。

やっぱpさおdthれ90あhsth
138デフォルトの名無しさん:04/12/09 02:09:36
>>131
要素数が少ないなら、開き直って全部舐めてしまうのが、かえって速いことも。
要素数が多いなら、とりあえずCMapを使ってみるのはどう?
すでにあるかどうかのチェックだけに使うのでもいいし、ついでに要素を指すポインタを格納すればウマー

>>134
VC6が欲しくて、MSDN付きのVS.NETを買いましたが何か。
139デフォルトの名無しさん:04/12/09 02:58:18
なんでまたCStringArrayだとかCMapだとか…
140デフォルトの名無しさん:04/12/09 03:06:47
使いたいから
141デフォルトの名無しさん:04/12/09 20:45:03
すみません。
VC++.NETってSTLのstringとかvectorを
使えなくなったんでしょうか?
#include <vector>しただけでも結構エラーがでてしまいます。
142デフォルトの名無しさん:04/12/09 22:18:00
.NETアプリならね
143138:04/12/10 00:49:35
>>139
100% pure MFC なんだよ。

テンプレートライブラリって意外と難しい。
使うのは簡単だけど使いこなすのはね・・・。

やたらオブジェクトサイズが大きくてパフォーマンスの悪いプログラムがあって、
調べてみたらテンプレートの使い方が不適切だった、なんてのがあったよ。
無理に背伸びして問題を起こすよりは、古いものを使うのも場合によってはあり。
とくに>>131さんのような質問をするレベルではね。
144デフォルトの名無しさん:04/12/10 04:19:45
無難な方法を選ぶと成長しにくい罠
まぁ社会人で製品の納期守らなきゃいけないなら冒険できないんだろうけど…
145デフォルトの名無しさん:04/12/10 09:33:46
>>144
CObArrayに(newした)ポインタ突っ込んだままdeleteしない阿呆の尻拭いする羽目になったときは、
全部vectorに書き換えた。
146デフォルトの名無しさん:04/12/10 10:25:22
vectorだってnewしたポインタ突っ込んだらdeleteしなきゃいけないじゃん。
147デフォルトの名無しさん:04/12/10 10:54:25
>>146
関係ないけど、ポインタを格納した場合、ついつい何時もの調子で
こう書いて、不正アクセスしてしまう漏れ…
for(vector<int*>::iterator i = v.begin(); i != v.end(); ++i){
delete *i;
}

for(vector<int*>::iterator i = v.begin(); i != v.end();){
delete *i++;
}
148デフォルトの名無しさん:04/12/10 10:59:05
>>146
んにゃ、実体突っ込んだから大丈夫。
149デフォルトの名無しさん:04/12/10 11:12:33
>>145
それはMFCのせいじゃないだろ・・・
150デフォルトの名無しさん:04/12/10 11:37:23
>>149
CObArrayに実体は突っ込めない。
151デフォルトの名無しさん:04/12/10 12:15:46
(つД⊂)シクシク

またわけわからいくなったので教えてください

return 0L ;

の0Lってどういう意味ですか・・・?
152デフォルトの名無しさん:04/12/10 12:20:49
>>151
long(0)に同じ。関数の戻り値の型がlongなのだろう。
153デフォルトの名無しさん:04/12/10 12:24:48
>>150
だからMFCにも実体を突っ込めるテンプレートはあるわけで、
MFCの代わりにSTLを使ったから解決したという事ではない。
単にMFCのクラス選択を間違ってるだけだ。
154デフォルトの名無しさん:04/12/10 12:42:09
>>152
*^▽゚)v Thanks!!★彡
わかりました! ありがとー
155デフォルトの名無しさん:04/12/10 14:15:52
HANDLEってなんですか?
156デフォルトの名無しさん:04/12/10 14:22:05
157デフォルトの名無しさん:04/12/10 15:12:22
>>153
誰か、MFCの代わりにSTLを*使ったから*解決したと書いていたのか?
ただ単に>145はSTLを使うようにして解決したと書いているだけだと思うが。
158デフォルトの名無しさん:04/12/10 15:38:10
">>144"って付けてコメントしてるのはなぜ?普通に考えて>>143-144の文脈に
乗ったコメントだと他の人は読むだろ。単発のコメントでないのだから「ただ単に」
とは言えないはずだが。
159デフォルトの名無しさん:04/12/10 16:13:25
こっちの方がよさそうなんで同じ質問をコピペします↓

VC6.0で変数が増えてくるとメモリの中の変な所にアドレス割り振っちゃうんだけど
これってバグですか?.NETだと直ってますか?
160デフォルトの名無しさん:04/12/10 16:14:11
どこに変数割り振ろうがコンパイラの勝手
161デフォルトの名無しさん:04/12/10 16:29:05
いや,なんつうかそういう意味じゃなくて書き込んではいけない
領域っぽいところに割り振ってるっぽいのよね。
大抵の場合変数のアドレスをメモリエディタで探して手動で書き換えても問題ないんだけど

その書き換えてはいけないっぽい領域の変数の値
弄ろうとするとプログラムごとシャットダウンするのよ。
手動で書き込もうがプログラム通して書き換えようがシャットダウンするってのが
変だなと思って
162デフォルトの名無しさん:04/12/10 16:49:01
>>161
お前の作ったプログラムのバグ
スタックオーバーフロー

163145:04/12/10 20:03:13
>>157>>158
MFC使って蛸なプログラム書くくらいなら最初からSTL使えばいいって話。
CSIZEやCRECT使うなとまでは言わんが、複素数ならcomplex使えよとか。

>>159
よもや最適化されているコードのデバッグしてないよな?
164デフォルトの名無しさん:04/12/10 20:06:20
つーか、毎回PCがシャットダウンするのか小一時間(以下略
165デフォルトの名無しさん:04/12/10 20:44:39
ぬるぽ例外のことだろ?
166デフォルトの名無しさん:04/12/10 22:56:59
>>165
ぬるぽはNullPointerExceptionのことだから
"例外"を付けるのは間違っているよ。
167デフォルトの名無しさん:04/12/10 23:00:56
>>163
だからあんたのvectorの話はMFCかSTLの問題じゃないんだって。
ダメな奴は最初からSTL使っても蛸なプログラム書くんだっつーの。
168デフォルトの名無しさん:04/12/10 23:01:00
>>163
タコはどうやってもタコの気がする。
169デフォルトの名無しさん:04/12/10 23:13:48
>>163
キミは論旨が一貫しないな
170159:04/12/11 06:53:29
原因は結局よく分かりませんでしたがSP5当てたら直りました。

>>162
私は独学でプログラム勉強して2年たちます。
そろそろWindowマシンのメモリも小さいなと思えるほど
でっかいプログラム書くようになったのでそういうのも勉強しなきゃいけないと思うんですが、
Window or VC特有のメモリの取り扱い関係でなんかいい本とかサイトとか知りませんか?
171デフォルトの名無しさん:04/12/11 07:01:23
もしスタックオーバーフローならコンパイラオプションでスタックの容量を増やせばいいだけ。
172デフォルトの名無しさん:04/12/11 08:20:04
>>170
何かが間違っている
173デフォルトの名無しさん:04/12/11 08:39:57
>>172
そうですね。ちょっと不気味なんで
とりあえずスタックサイズを変えてみました。
174デフォルトの名無しさん:04/12/11 11:18:14
そういう問題じゃないと思う
175デフォルトの名無しさん:04/12/11 11:39:21
>>170>>171>>173
なんかおかしいよ・・・
176デフォルトの名無しさん:04/12/11 17:33:44
はじめまして。
VCを最近はじめたものです。
(VC6.0 WinXP)

現在、MFC でイメージ(Rawデータ)をダイアログに表示しています。
その際、SetPixelVを画素分、ループでまわしていますが、
上から順に表示されて表示が遅く感じます。
(普通のJPEGを遅い回線で見る感じ?)

あまり信用は出来ませんが、
表示速度は、timeGetTime() で測ったところ、
512 x 512 のイメージで 0.6秒ぐらいです。

この方法だと、この位の速度なのでしょうか?
イメージビューアとかのスピードが理想なのですが、
他にいい方法があったら、教えていただきたいです。

よろしくお願いします。

177デフォルトの名無しさん:04/12/11 17:56:44
STLの、std::list<std::string>を使うとwarningがたくさん出てしまうのですが、
#pragma warning(disable:4786)は一つのソースファイル内でしか有効でないらしく
ほかのファイルをコンパイルするとwarningが出てしまいます。
すべてのソースで#pragmaを書けばいいんでしょうが、
プロジェクト全体でC4786のwarningを出さないようにするにはどうすればいいのでしょうか。
178デフォルトの名無しさん:04/12/11 18:59:06
>>177
stdafx.hにでも書いとけ。
179デフォルトの名無しさん:04/12/11 19:02:06
// >>176
SetRedraw(false);
// 描画処理
SetRedraw();
// これで少しは早くならない?
// あ、InvalidateRect()が必要かも。
180デフォルトの名無しさん:04/12/11 20:06:59
176
DIBイメージに変換してからBitBltしてやると1秒間に100枚はいけそうな希ガス。
181デフォルトの名無しさん:04/12/11 21:20:09
>>177
最新のVCを使いなさい。
182デフォルトの名無しさん:04/12/12 00:06:29
>>176
メモリDCへ一度全て展開してから一気にDCへBitBltすれば
表示そのものは早く見えると思うよ。
183デフォルトの名無しさん:04/12/12 02:52:53
VisualC++.netでリソースをテキストエディタで編集するにはどうしたらいいのでしょうか?
リソースファイルをテキストエディタで編集してからリソースビューで見ると他のエディタで使用中となってしまいます
184デフォルトの名無しさん:04/12/12 03:18:32
メモ帳
185デフォルトの名無しさん:04/12/12 03:52:10
>>183
テキストエディタで編集が終わったのなら、閉じればいいと思うのだが。
非拘束型のエディタならその必要もないし。
テキストエディタで保存した瞬間にダイアログが出て面食らうけどw
186183:04/12/12 04:49:58
>>185
テキストエディタでリソースファイルを編集したあとコンパイルしようとすると

リソース コンパイラの致命的なエラー RC1004unexpected end of file found

原因

テキスト ファイルの最終行に、ライン フィード文字およびキャリッジ リターン文字がありません。

っていうエラーが出てしまうんです。ラインフィード文字とキャリッジリターン文字についてヘルプで検索してみたんですが
よけいわからなくて・・・
187デフォルトの名無しさん:04/12/12 05:00:47
>>186
そのレベルだったらテキストエディタで編集するのは諦めるのが無難だと思う。
つーか、改行コードが見えないエディタを使うなと。
そのメッセージの言うとおり、最終行に改行コードが入ってないのが原因。
#レスの最後には無駄に改行入れてるのにねぇ。
188デフォルトの名無しさん:04/12/12 22:01:17
初心者です。わかりません。教えてください。
学校ででた問題が分かりません。
よろしくお願いします。
189デフォルトの名無しさん:04/12/12 22:20:44
最終行にキャレットを持ってって
「ダダダダダッー」っと、Enterキーを叩く。
なおこの際に気合いが重要であることは言うまでもない。
190デフォルトの名無しさん:04/12/12 22:35:48
char ss[80], str[80];

テキストボックスaから文字列を取得してss[]に格納
strcpy(str, ss);
str[]の文字列をテキストボックスbに出力

上のような感じのことを
C言語とVC++を使ってしたいのですが、
どのようにしたらいいのでしょうか?

MSDNを検索してみて
C スタイルの文字列に関連する CString の操作方法
C スタイルの Null で終わる文字列への変換

ここいらへんを調べてみましたが、
どのようにすればいいのかがわかりませんでした。

MSDNでの検索の仕方を教えていただけないでしょうか?
191デフォルトの名無しさん:04/12/12 22:43:44
>>190
CWnd::GetWindowTextとCWnd::SetWindowText
わざわざssからstrへコピーする必要はないぞ
192デフォルトの名無しさん:04/12/12 22:48:39
>>191さんありがとうございます。
ですが、strcpy(str, ss)をしてから
strを色々と処理して
テキストボックスbに出力したかったんです。

変なとこを端折ったりしてすいませんでした。
193デフォルトの名無しさん:04/12/12 23:18:10
>>192
べつにssに色々処理してもテキストボックスaに影響でないけど
なんか他に使うのかな?
194デフォルトの名無しさん:04/12/12 23:21:53
190 名前:デフォルトの名無しさん[sage君のセンスを問う] 投稿日:04/12/12 22:35:48

おふざけは良いんだけど、真面目な質問とまぎらわしいのは迷惑だよ。
195190:04/12/12 23:49:52
188のメル欄残りです。・・・

最後に
strcmp(ss, str);
をする予定なんです。
196176:04/12/13 00:55:48
>>179 さん
レスありがとうございます。
書き方が悪かったのか、うまくいきませんでした。
ツリービューとかに使われる手法なんですね。勉強になりましたm(_ _)m

>>180 さん
レスありがとうございます。
仰るとおり、DIBでの表示で速くなりました。
StretchDIBits() を使いました。

>>182 さん
レスありがとうございます。
これも参考になりました。
なんとなくスワップバッファみたいな感じですか。

みなさん、ありがとうございました。

197デフォルトの名無しさん:04/12/13 03:31:42
>>190
そのメール欄は、ネタってことでよろしい?

とりあえず、無闇にstrcpyを使うな。
198デフォルトの名無しさん:04/12/13 06:15:58
コピー元として使う場合は、CStringはNULLで終わる文字列と同じと考えていい。

CWnd::SetWindowText
void SetWindowText( LPCTSTR lpszString );

引数
lpszString
新しいタイトルまたはコントロール テキストとして使う CString オブジェクト
または NULLで終わる文字列を指します。
199デフォルトの名無しさん:04/12/13 09:28:16
LPCTSTRと型指定があるところにはCStringが入る

LP"C"TSTRのようにCが付くのはconst型の意味であり
実用上は読み込み用のバッファとして使うものであるということ

CStringも読み込み用のバッファとして使うもの

CStringも書き込み用のバッファとして使えるがその場合は特別な操作が必要
200デフォルトの名無しさん:04/12/13 15:24:20
>>197さん、はいネタです。

>>198さん
SetWindowText(LPCTSTR lpszString);
で検索してみます。
ありがとうございました。
201デフォルトの名無しさん:04/12/13 17:54:13
VisualC++.netでバイナリファイルを読み込んで一覧を表示させるにはどうすればいいのでしょうか?
202デフォルトの名無しさん:04/12/13 18:42:10
>>201
違う星の人?
203デフォルトの名無しさん:04/12/13 18:42:56
>>202
>202
204デフォルトの名無しさん:04/12/13 18:45:07
>>201
バイナリファイルを読み込んで一覧を表示させる、としか言いようが無い。
205201:04/12/13 19:50:49
>>204
どのようなプログラムを組めばよいのでしょう?
206デフォルトの名無しさん:04/12/13 19:54:55
>>205
>202
207デフォルトの名無しさん:04/12/13 20:02:08
#include <stdio.h>
int main(int argc, char *argv[])
{
  FILE *fp;
  if (argc <= 1)
    return 1;
  fp = fopen(argv[1], "r");
  if (fp)
  {
    for (;;)
    {
      int ch = getc(fp);
      if (ch == EOF)
        break;
      printf("%2X ", ch);
    }
    fclose(fp);
  }
  return 0;
}
208デフォルトの名無しさん:04/12/13 20:38:26
VC7ですが、DLLを作るプロジェクトがあって、
デバッガでステップ実行するとソースと違う動きをするんですけど。
たとえば何も無いステートメントでぴょこん!と関数のおしまいに飛んだり。
DLLはビルド後コピーしてるんですけど、PDBと同じ場所にないといけないの?
あるいはオブジェクトファイルとかIDBファイルとか、なんかそういうのも見ていて
それが古いのかな?もちろんリビルドしてるんですが。
一応タイムスタンプ見るとDLLもPDBも同じ時刻に出来てるんです。
209デフォルトの名無しさん:04/12/13 20:58:51
>>208
よもや最適化されたコードをデバッグしていないだろうな。
210デフォルトの名無しさん:04/12/13 21:21:44
最適化ですか。そういえばちゃんとチェックして無かったです。
とりあえずそれを見てみます。
ありがとうございました。
211デフォルトの名無しさん:04/12/13 23:39:23
手書きMFC(?)で例えば5秒ごとに発生するメッセージ・・みたいなやり方があれば教えてください
OnTimer使ってみましたが動きませんでしたorz
誰か教えてください・・・
212デフォルトの名無しさん:04/12/13 23:42:18
手書きMFC?
213デフォルトの名無しさん:04/12/14 00:40:07
>>212
いえ
手書きMFC(?)です。
214デフォルトの名無しさん:04/12/14 00:56:36
>>211
SetTimer()
215211:04/12/14 00:56:54
何分初心者でなんて書いていいか分かりませんでした
AppWizardじゃなくてWin32 Applicationという意味です・・すいません
216211:04/12/14 00:58:56
>>214
ありがとうございます やってみます
217デフォルトの名無しさん:04/12/14 03:19:04
for(i=0;i<j;i++)
{
wa+=data[i].ope;
printf("wa %f\n",wa);
}
printf("wa %f\n",wa);
の実行結果が

wa 140015878.223137
wa 140015982.283134
wa 140016086.353134
wa 140016190.423134
wa 140016294.493134
wa 140016398.563133
wa 140016502.623131
wa 140016606.683128
wa 140016710.743126
wa 140016814.803123
wa 32642638.803123 ←for文をぬけると減少してしまいます。なぜでしょうか?
218217:04/12/14 04:20:55
for(i=0;i<j;i++)
{
wa+=data[i].ope;
if(wa>33990000)
{
ji=wa;
}
}
printf("wa %f\n",wa);
ブサイクなやり方で自己解決
もっとスマートなやり方ない?
219デフォルトの名無しさん:04/12/14 04:51:39
あっ、UFOだ!
220デフォルトの名無しさん:04/12/14 05:07:08
>>217
そこだけ提示されても。少なくともそこで使われている変数の定義も見せてくれ。
221217:04/12/14 09:54:15
int i, j = 0;
float data[1280516];
double hasi,ji,wa=0;

for(i=0;i<j;i++)
{
wa=wa+(data[i]);
if(wa>33990000)
{
//printf("wa %f\n",wa);
ji=wa;
}
}
if(wa>33990000)
{
wa=ji;
}
printf("wa %f\n",wa);

です。
222デフォルトの名無しさん:04/12/14 10:54:11
10個のスレッドが同時に実行されるプログラムを作っています。
それぞれのスレッドは起動すると100秒経過後に特定の処理をします。
100秒後を検出するのに最適な方法はどれだと思いますか?

(1) WinAPIのSetTimer()で100秒後を通知させる
(2) WinAPIのSleep()で100秒後まで処理を停止させる
(3) 他の方法を使う
223デフォルトの名無しさん:04/12/14 11:06:50
int i, j = 0;
for(i=0;i<j;i++)

uso800
224デフォルトの名無しさん:04/12/14 11:08:58
>>222
(2)ってスレッド分けする意味あんの?
225デフォルトの名無しさん:04/12/14 12:05:08
>>224
大あり
226デフォルトの名無しさん:04/12/14 12:09:03
100秒待ってからスレッド作ったら?
227222:04/12/14 12:15:01
>>223
なんでやねんw

>>224
あります。理由は下のとおり。

>>226
各スレッドは起動するとそれぞれ個別の初期化処理をしてから
100秒間後まで待機します。
よって100秒後からスレッドを作るのは無理そうです。

SleepがSetTimerを呼んでそうだから(1)がいいのかな?
Sleepだとウィンドウプロシージャに記述したり
コールバック関数作らなくていいけど・・・
228デフォルトの名無しさん:04/12/14 12:22:27
100秒に期待する精度はどのくらい?
それぞれのスレッドが再開する時間差があっても大丈夫?
229デフォルトの名無しさん:04/12/14 12:54:56
100秒後までスレッドが応答不能になってもいいのならSleepが簡単だけど。
必要な条件を提示してくれないとコメントしづらい。
230デフォルトの名無しさん:04/12/14 13:13:54
そんな悩むほどの問題?
sleep入れるぐらいなら3分もかからんだろ
それでダメなら違う方法
231デフォルトの名無しさん:04/12/14 13:18:59
【質問:ダイアログを簡単に表示させたい】
VC++ .net2003 でプログラム開発をしています。
アプリケーションでMFCを選択して、ダイアログベースで開発しています。
このときダイアログ関係のファイルは
xxxDlg.cpp xxxDlg.h xxx.rcみたいのがでてきますが、ダイアログの画面を編集する
ときに、リソースビューからxxx.rc->Dialog->IDD_XXXX_DIALOGと選択して出している
のですが、毎回だと面倒なのですが、これを簡単に表示させることはできますか?
少なくともxxxDlg.cppとこのダイアログは関連してるのだから、xxxDlg.cppを表示
させているときにショートカットとか押せばそれに対応するダイアログが出せれば
いいし、またはソリューションを開くで開けば必ず最初にでてくるようなのでもいいの
ですが、そういうことができますでしょうか?ご教示ください。
232デフォルトの名無しさん:04/12/14 13:21:35
xxx.rc をテキストエディタで直接編集するのが一番速い
233デフォルトの名無しさん:04/12/14 13:24:21
>>231
マクロでも組めばできるんでない?
つーか、ダイアログエディタを開いたままソリューションを閉じれば
次回開いたときに開いてくれると思うけど?
234デフォルトの名無しさん:04/12/14 13:38:07
1度開いたやつは閉じないかぎりウインドウの一覧にあるだろ
235デフォルトの名無しさん:04/12/14 16:56:40
char szWinName とかってウィンドウクラス名
WINAPI の外で大体宣言されているんですけど、
これはなぜですか?
236デフォルトの名無しさん:04/12/14 17:17:33
スルーですかっっ!?
悲しいです
237デフォルトの名無しさん:04/12/14 17:30:32
>>235
ひょっとしてint WINAPI WinMain()のこと?
中でしか使わないなら中でもいいよ
238デフォルトの名無しさん:04/12/14 17:53:36
なんでグローバルにしてるのか?っていう意味か?
239デフォルトの名無しさん:04/12/14 18:44:46
メニューバーの表示文字"編集(E)"とかを動的に変えたいのですが
いい方法はないでしょうか?
環境はVS.NET + MFCです
240デフォルトの名無しさん:04/12/14 18:53:15
>>239
MFCならON_UPDATE_COMMAND_UI
241デフォルトの名無しさん:04/12/14 18:55:50
じゃなかったCMenu
242211:04/12/14 20:43:03
色々調べたりやってみたりしたけどSetTimer()の使い方が分かりません・・・
誰か簡単な例で教えてくだせぇぇぇorz
243デフォルトの名無しさん:04/12/14 20:44:36
>>218
for(i=0;i<j;i++){
wa+=data[i].ope;
printf("wa %f\n",wa);
printf("for文内でのiの値\n");
printf("i=%d\n", i);
}
printf("wa %f\n",wa);
printf("for文外でのiの値\n");
printf("i=%d\n", i);

iの値をチェックしてみろ。
244243:04/12/14 20:46:17
意味ないこと書いた
逝ってくる
245デフォルトの名無しさん:04/12/14 21:42:01
>>242
OnTimer
246デフォルトの名無しさん:04/12/14 22:14:54
orzTimer
247デフォルトの名無しさん:04/12/14 23:18:00
>>231
クラスビューで右クリックか?
248235:04/12/15 00:11:39
>>238さん、その通りです。グローバルにする意味はあるのでしょうか?
>>237さんのおっしゃるよう、中でもいい気はするんですが。
どんな意図があるのでしょう。
249デフォルトの名無しさん:04/12/15 02:42:29
中でしか使わないときと
そうじゃないときがあるから
に決まってるじゃ内科医
250デフォルトの名無しさん:04/12/15 04:29:35
スレッドで100秒停止する話だけど・・・

(1) そのスレッドのための初期化処理を、そのスレッドで行う必要が本当にあるのか。(ある場合もある)
(2) SetTimerして呼ばさせる関数もしくはWM_TIMERは、そのスレッドである必要が本当にあるのか?

自分だったら、ガイシュツだけど、まずSleep。
何か理由があってSleepが不可の場合、その他の方法も慎重に選択しなきゃいけないと思うが・・・

タイマーは有限のリソースなので無闇に使いたくない。
あと、ワーカースレッドにウィンドウ持たせたくない。

なので、同期を使う。
ワーカースレッドが初期化を完了したらWaitForSingleObject等でスレッドの実行を止める。
んで、他のウィンドウを持っていて淀みなくメッセージポンプが回ってるウィンドウでタイマーをセット。
(できれば、いちいちタイマーを起動せず、他のタイマー処理と共有させたい)
100秒経ったら、そのスレッドがWaitForSingleObjectで待っているオブジェクトをシグナル状態にする。
251デフォルトの名無しさん:04/12/15 06:11:01
>>248
ペゾルドは中でやってる。
グローバルでもローカルでも#defineでもリテラルでもなんでもいい。
スタティックだからローカルにこだわるメリットはない。
252デフォルトの名無しさん:04/12/15 08:00:25
とても参考になりました。
このような質問に答えてくださって、ありがとうございました。
嬉しかったっす。
253デフォルトの名無しさん:04/12/15 18:36:57
1+2+3,1+2-3,1-2-3,1*2-3,・・・・・・のように符号を変えていって値を
求めたいのですが、

char fugou[4]={'+','-','*','/'};
for(a=0; a<=2; a++){
cout<<1<<fugou[a]<<2<<fugou[a]<<3<<endl;
}

COUTからどのようにして答えを出せばいいのでしょうか?

254デフォルトの名無しさん:04/12/15 18:40:51
すいませんC++スレと間違いました
255デフォルトの名無しさん:04/12/15 23:10:28
>>249
別にいいよ?北朝鮮と戦争になったら
自衛隊に志願するから。おまえも工作員なら
工作員らしく行動しろよ。馬鹿丸出しkkkk
256255:04/12/15 23:12:07
すみません。書く所
間違えました。
257デフォルトの名無しさん:04/12/15 23:18:19
このスレには北朝鮮の工作員がいる悪寒
258デフォルトの名無しさん:04/12/15 23:19:11
実行画面のコマンドプロンプトに
スクロールバーが付いてなくて1画面分の情報しか見れないのですが
何とかならないでしょうか?
OSはMEです。
259デフォルトの名無しさん:04/12/15 23:33:06
dir |more
のような感じ
260デフォルトの名無しさん:04/12/16 00:35:41
Meなんて使うな!
261デフォルトの名無しさん:04/12/16 00:45:14
dir /p
262258:04/12/16 01:23:09
>>260
やっぱMEの仕様ですか?
どうにもなりませんかね?
263デフォルトの名無しさん:04/12/16 06:45:24
ビットマップファイルを合成したいのですが、どうすればいいですか?
合成というのは、二つの.BMPファイルを読み込んでそれらを繋げて一つ
のビットマップにしようとしています。
264デフォルトの名無しさん:04/12/16 07:56:15
・ω・)つ ペイント
265デフォルトの名無しさん:04/12/16 09:42:33
ビットマップ 論理演算
266デフォルトの名無しさん:04/12/16 12:37:57
つなげるっつっても
□□ □
    □

とかあるじゃん。
どんな風につなげるの?
ファイルの形・サイズは同じでいいんだよね。
267デフォルトの名無しさん:04/12/16 12:45:35
>>266
知らないなら黙ってろ
268デフォルトの名無しさん:04/12/16 12:48:52
>>263
ペイントを2つの画像分開いて、範囲選択モード(点線のやつ)にして、
片方をコピーしてもう片方に貼り付ける。
たしか、貼り付ける位置は指定できなかったから、貼り付けられる方の画像を、
貼り付ける画像ぐらいのスペースをあらかじめ開けておく。
後は、範囲選択モードでドラッグしてつなげればいい。
269268:04/12/16 12:51:13
あっ、スレ的に言うとプログラムでって事か。すまんorz。
ちょうどゲームのチップセットを同じような感じで並べていたから・・。
270デフォルトの名無しさん:04/12/16 15:11:57
>266
そうです。ファイルの形・サイズは同じでいいです。
繋げ方はAのパッチのとBのパッチを上下に並べて繋
げようとしています。
あと、どなたかビットマップの加工でよいホームペ
ージがあったら教えていただけませんか?
271デフォルトの名無しさん:04/12/16 15:14:50
今度はD3DXCreateSphereでメッシュを作り、
そのメッシュの頂点を動かしてみようと思ったのですが、
また強制終了して原因がよくわかりません。
下のようにしてみましたが、何所かおかしいでしょうか。
何か根本的に間違ってますでしょうか?

LPDIRECT3DVERTEXBUFFER9 pVB;
WORD* pV;
DWORD FVFSize
D3DXVECTOR3 *v;

//球メッシュ生成
D3DXCreateSphere(pd3dDev,1,20,10,&m_pMesh,NULL);

FVFSize = D3DXGetFVFVertexSize( m_pMesh->GetFVF() ); //fvfのサイズを取得
m_pMesh->GetVertexBuffer(&pVB); //頂点バッファ取得
pVB->Lock(0,0,(void**)&pV,0); //頂点バッファロック
//+y方向に移動してみる
for(int i=0;i<m_pMesh->GetNumVertices();i++)
{
v = (D3DXVECTOR3*)(FVFSize * i);
v->y+=1;
}


272デフォルトの名無しさん:04/12/16 15:43:27
くだらない質問ふえたな
そろそろ学校休み?
273デフォルトの名無しさん:04/12/16 22:09:53
>>270
>264のメール欄にあるライブラリなら応用例はいくらでも出てくると思うが。
274デフォルトの名無しさん:04/12/17 00:00:33
おにいちゃん、助けて下さい。
MFCでダイアログベースのアプリをいい感じの所まで作ったのですが、
メニューに表示される文字を、コード上で後から変更する必要が出てきました。
UPDATE_COMMAND_UIハンドラでのSetText()は効かないし・・・
今さらFormView等で作り直せないです・・・
多少回りくどい方法でも良いので、メニューの文字変えられませんでしょうか(><)
275デフォルトの名無しさん:04/12/17 00:08:46
>>274
CMenuのメンバ関数を使ってできないかな?
276マイク ◆yrBrqfF1Ew :04/12/17 00:15:01
>>272はまさか社会人なのか?
277274:04/12/17 00:32:01
>>275
動的に追加はできました。
これからCMenuでいろいろ試して見たいと思います。
ありがとうございます。
278デフォルトの名無しさん:04/12/17 06:32:30
フリーのVisual C++を使おうとしているWinプログラマ初心者です。 あるソースを
落としてきてビルドしようとしているのですが、途中でNMAKEが以下のエラーを
吐きました。
NMAKE : fatal error U1071: cycle in dependency tree for target 'c:\Documents'

ファイルはC:\Documents and Setting\washi\..... の下に置いているのですが、
ファイルパス名に空白が入っているのをNMAKEがチョチョギっているような
気がします。 どう対処したらよいのでしょうか? 
279デフォルトの名無しさん:04/12/17 08:17:11
nmakeってフリー版に付いてたのか?
前,雑誌で付いてないって書いてあって手出してないんだが。
280デフォルトの名無しさん:04/12/17 08:22:52
>>278
""でパスを囲む
281デフォルトの名無しさん:04/12/17 09:20:01
>>278
>>280
・ショートネームのパスで作業する。
・c:/usrでも作ってそちらで作業する。
282278:04/12/17 10:48:56
>>279
http://pc5.2ch.net/test/read.cgi/tech/1086287039/2

> Q. nmake/rc/cvtresは?
>  A. PSDKのbin/win64フォルダ以下に。もしくは.NETのを使え。

とありましたがWinXP SP/2のPSDKにはそのフォルダが見当たりませんで
.NETのPSDKの中に見つけて使ってます。

>>280 >>281
サンクス。 色々な手がありますね。 
283278:04/12/17 10:50:57
>>282
「.NETのSDK」でした。
284デフォルトの名無しさん:04/12/17 11:34:35
C++は全くやったことない初心者です。
前任者がVC++で作ったプログラムを修正しないといけないんですが、
バージョンが「VC++ v7.10」って書いてあるんです。
これってVC++.NET2002なのか2003なのか教えてください。
あとVC++.NETとVC++.NET2002って同じものなんですか?
285デフォルトの名無しさん:04/12/17 11:47:41
VC7.1 == 2003
VC7.1 == 2003
VC7.1 == 2003

VC++.NET == VC++.NET2002
VC++.NET == VC++.NET2002
VC++.NET == VC++.NET2002
286デフォルトの名無しさん:04/12/17 11:57:07
Visual C++を始めてまだ1週間足らずのものです。お兄さん方教えてさい。

http://homepage3.nifty.com/ishidate/vcpp6_g16/vcpp6_g16.htm
↑ここのサイトのサンプルを作成したのですが、
表示が1ポイントずつ表示され遅いです
画像の表示を早くする方法はありますか?

またファイルの読込を初めからファイル指定&readする方法を教えてください。

つまり
Serializeでやってるようなことが
View::OnDrawで出来様にしたいです

まだまだ初心者なので質問内容も変な点があるかと思いますが
よろしくお願いします。
287284:04/12/17 12:01:14
>>285
ありがとうございます。
でもそうすると、今VC++.NET2003でコンパイルエラーとなっている
のが理由がわかんないんですが...

JVM g_jvm;

って部分に
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2146: 構文エラー : ';' が、識別子 'g_jvm' の前に必要です。
ってエラーが出てるんですが...
288デフォルトの名無しさん:04/12/17 12:05:17
>>286
DICOM画像用のライブラリかなんかがあるんじゃないの?
少なくともVC単体では無理。
289デフォルトの名無しさん:04/12/17 12:07:15
>>287
エラーはそれ一つだけ?
290286:04/12/17 12:42:44
>>288
上記の遅いってのはVCでdllを作りVBにハンドルを渡そうって思っています。
早くする方法ないかなと思ったのですが・・・。

下記のファイルを初めから指定する方法は無理なのでしょうか?
291デフォルトの名無しさん:04/12/17 13:03:45
>>289
いや、山ほどあります。
いちばん最初のがこれで。

とりあえず最初の6行だけ
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2146: 構文エラー : ';' が、識別子 'g_jvm' の前に必要です。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2501: 'JVM' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2501: 'g_jvm' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2143: 構文エラー : ';' が '*' の前にありません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2501: 'ServiceCFG' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2501: 'g_pConfig' : 識別名を宣言するのに、型が指定されていません。

32行目
JVM g_jvm;
35行目
ServiceCFG *g_pConfig;
292デフォルトの名無しさん:04/12/17 13:09:37
JVMとかServiceCFGが定義されてる
ヘッダファイルをインクルードしなさい。
293デフォルトの名無しさん:04/12/17 13:25:41
>292
インクルードは
#include "stdafx.h"
としていて、stdafx.hの中で
#include "JVM.h"
#include "servicecfg.h"
としているんですが。
294デフォルトの名無しさん:04/12/17 13:35:52
突然なんですが、この式をstatementにするにはどうやって記述すればいいでしょうか?

      rate*(1+rate)N
payment = ━━━━━━━━━
      ((1+Rate)N-1)

ちなみにNの部分は自乗です。
どうもわからないのでよろしくお願いします。
295デフォルトの名無しさん:04/12/17 13:36:54
>>290
>早くする方法

CreateDIBSection()で描画領域と同じ大きさのHBITMAPを作成する。
HBITMAPをSelectObject()したHDCにSetPixcel()していく。
OnDraw()ではそのHBITMAPを使って描画する。
296デフォルトの名無しさん:04/12/17 13:39:13
>>294
payment = rate*pow(1+rate, N) / (pow(1+Rate, N) - 1);
こういうこと?
297デフォルトの名無しさん:04/12/17 13:43:40
>>293
リビルドすればOKだったというのはよくある話。
298デフォルトの名無しさん:04/12/17 14:07:23
>>297
リビルドすると違うエラーが出ますねえorz

とにかく全面的にVC++.NET2003のコンパイル方法がわからない
んでお手上げ状態です。
MSDN見ても何が何やら...
どこかにコンパイル方法について書いてあるHPってありませんか?
本だとやっぱり公式解説書がいいんでしょうか?
299デフォルトの名無しさん:04/12/17 14:10:25
好きな数字を10入力して
最後に一番大きい数字を出力する
プログラムなんですが
最後に出力される数字が明らかにおかしいです。
プログラムのどこがおかしいでしょうか?
実行は可能なんですが・・・
以下に書きます。
300286:04/12/17 14:10:45
>>295
ありがとうございます。がんがってみます。

よかったら初めから該当ファイルをLOADする方法が分かりましたら教えてください。
301299:04/12/17 14:10:45
#include<stdio.h>
void main()
{
int numbers[9];
int i;
for(i=0;i<9;i++)
{
printf("好きな数字を入力して下さい。\n");
scanf("%d",&numbers[i]);
}
for(i=0;i<=9;i++)
{
if(numbers[i]>=numbers[0] &&
numbers[i]>=numbers[1] &&
numbers[i]>=numbers[2] &&
numbers[i]>=numbers[3] &&
numbers[i]>=numbers[4] &&
numbers[i]>=numbers[5] &&
numbers[i]>=numbers[6] &&
numbers[i]>=numbers[7] &&
numbers[i]>=numbers[8] &&
numbers[i]>=numbers[9])
{
printf("一番大きな数字は%dです。\n",numbers[i]);
break;
}
}
}
302デフォルトの名無しさん:04/12/17 14:36:09
>>299
プログラムの間違いは,
printf("一番大きな数字は%dです。\n",numbers[i]);
ここで,number[i]のiって,forで使用しているから必ず9でしょ.
だから出力は最大値とか関係なくnumber[9]が出る.

最大値を求めるならば,
int max = intの最小値;
int j = 0;
for(i=0;i<=9;i++) {
if(number[i]>max) {
max = number[i];
j = i;
}
}
printf("一番大きな数字は%dです。\n",numbers[j]);
こういうのが普通と思うよ.
303デフォルトの名無しさん:04/12/17 14:37:22
間違いを指摘する方が面倒臭い。
#include<stdio.h>
int main()
{
  int max = 0;
  int i;
  for (i = 0; i < 9; i++)
  {
    int num;
    puts("好きな数字を入力して下さい。");
    scanf("%d", &num);
    if (num > max)
    {
      max = num;
    }
  }
  printf("一番大きな数字は%dです。\n", max);
  return 0;
}
304294:04/12/17 14:39:38
>>294なんですが、以下の問題が解けません。どうか力を貸していただけないでしょうか?
よろしくお願いします。

Problem: 以下の処理を実行する対話型のC++プログラムを書いてください。
Input: cinを使って、以下のプログラムにキーボードからの次のデータおよび入力を、
    Coutを使って以下のように出力するコードを書きなさい。

a.the interest rate
b.the number of payments
c.the amount of the loan

次の式を使用して、ローンの毎月の支払額を計算してください。
Rate * (1+Rate)N
Payment = ━━━━━━━━━━━━ * L
((1+Rate)N-1)
Rate は monthly interest rate の事で、年間12%で、月間にすると1%
N はnumber of payments の事
L は amount of the loan の事

Output: 出力フォーマットの例は次に記します。次と同じ出力が出来るプログラムを完成させてください。

Loan Amount : $ 10000.00
Monthly Interest Rate : 1%
Number of Payments : 36
Monthly Payment : $ 332.14
Amount Paid Back : $ 11957.15
Interest Paid : $ 1957.15
305デフォルトの名無しさん:04/12/17 14:48:05
質問が続いているところ申し訳ない。

自分がCreateProcessしたプロセスを安全に終了させる(終了して貰う)にはどうすればいい?
少なくともTerminateProcessでは巧くいかないらしいことと、タイトルでウィンドウを特定できないことはわかっている。
自分がCreateしたんだからプロセスハンドルやプロセスIDは判っているので何か手はあると思うのだけど。
306299:04/12/17 14:51:43
>>302-303
ありがとうございました
307デフォルトの名無しさん:04/12/17 15:12:36
>>305
PostThreadMessage()でWM_QUITを投げてみたらどう?
308305:04/12/17 15:15:46
>>307
うい、試してみます。Thx!
309286:04/12/17 15:25:01
再度質問
http://homepage3.nifty.com/ishidate/vcpp6_g16/vcpp6_g16.htm
ここでやっているファイルの読込部分を(Serialize)
初めからファイルを指定し(c:\\aaa.dcmなど)起動直後に行いたいです。

どうのような方法で行ったらよいですか?
310デフォルトの名無しさん:04/12/17 15:57:44
MFCならCWinApp::OpenDocumentFile
311デフォルトの名無しさん:04/12/17 16:01:05
>>305
「TerminateProcessでは巧くいかないらしい」
これのソースは?
312305:04/12/17 16:08:30
>>311
死ぬには死ぬんですが、資源の後始末ができないのです。
で、CreateProcessで得たスレッドIDに対してPostThreadMessageでWM_QUITを投げる方法でよさそうです。
313デフォルトの名無しさん:04/12/17 16:44:06
>>311
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_terminateprocess.htm
> 特別な状況でのみこの関数を使ってください。
314286:04/12/17 17:16:29
>>310
確かに・・・。必死こいて調べたら何とかできました。
ただdllを作成したかったのでシリアライゼーション部分も変更しなければなりませんね・・・。
(↑Serializeもまだあまり分かってない・・・初心者なもんで・・・。)

やりたいことは、VBからファイルを指定してdllを呼び
DICOM画像を表示したいってな奴を作りたいのです。
どうやったら・・・助けてください
315デフォルトの名無しさん:04/12/17 19:07:21
>>299のネタに付き合う香具師は、みんなわざとボケてるのか?

int numbers[9]; // ← 10にしろ
for(i=0;i<9;i++) // ← i<10 か i<=9 にしろ

>>302さん、エディタにペーストしてタブつけてみればわかるよ。
316デフォルトの名無しさん:04/12/17 20:54:46
>>315
VCスレなんだからスルーして流せよ
317デフォルトの名無しさん:04/12/18 00:28:21
VC6から.netに乗り換えたのですが
STLを使ってコンパイルした物をバイナリエディタで開くと
failure@ios_base@std@@・・・・
のようなゴミ?が沢山くっつきます。VC6のときはくっつかなかったんですが
これは一体なんなのでしょうか?また消す方法はありますでしょうか?
318デフォルトの名無しさん:04/12/18 00:29:40
>>317
ついたら何かまずいのか?
何がしたいのかよくわからん。
319デフォルトの名無しさん:04/12/18 00:41:07
名前空間とかそういうもののようですが、
Releaseビルドなのにデバッグ情報が残っているのではないかと思うのですが。
それって、まずくないですか?
320デフォルトの名無しさん:04/12/18 00:53:29
すいません、質問です(初心者的質問で恐縮です)
現在、自分はVC++.NET2003でフォームアプリケーションを作ろうとしていて
ビルドを何度行っても、成立しません・・・(当然か)
ソースコードは間違っていません。
エラー内容が↓
エラーの結果が 'resgen.exe' より返されました。(エラー番号なし)
でした。試しに、何も生成してないフォームアプリをビルドしても
このエラーが出てきます。おそらく、自分の開発環境自体に問題があるのでしょうが
さっぱりわかりません。MSDNで関連事項を調べてもさっぱりなのです・・・
このエラーわかる方、いっらっしゃいましたら、ご指導ください
お願いします
321デフォルトの名無しさん:04/12/18 02:27:56
エスパー伊藤君出番だよ〜
322デフォルトの名無しさん:04/12/18 02:41:24
あははは。ま、週末だから運がよければ現れてくれるかもね。
323デフォルトの名無しさん:04/12/18 03:23:12
>>321
×伊藤
○伊東
324デフォルトの名無しさん:04/12/18 05:23:15
>>320
インストールに失敗してるんじゃないの?
325デフォルトの名無しさん:04/12/18 07:33:45
以前はできたのだが・・
326デフォルトの名無しさん:04/12/18 07:58:29
ソースくらい出せよ
327デフォルトの名無しさん:04/12/18 10:58:47
ユーザ権限が違うとか。
328デフォルトの名無しさん:04/12/18 17:26:59
英語版のVCで日本語入れると文字化けしてしまうんですけど解決法
ってあるんでしょうか? やっぱ日本語版買わないといけないんでしょうか。
329デフォルトの名無しさん:04/12/18 17:31:01
そんなことはない
330デフォルトの名無しさん:04/12/18 17:33:43
コンパイラとかは同じだろ
日本語の部分はテキストエディタで編集すればいけるはず
331デフォルトの名無しさん:04/12/18 17:36:53
もしかするとフォント設定すればいいだけかも
332デフォルトの名無しさん:04/12/18 17:37:26
それふぉんと?
333デフォルトの名無しさん:04/12/18 18:07:01
 ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ
334デフォルトの名無しさん:04/12/18 18:55:15
楽しいね
335デフォルトの名無しさん:04/12/18 19:47:12
両手をたたくと
336デフォルトの名無しさん:04/12/18 20:02:25
痛い、
337デフォルトの名無しさん:04/12/18 20:24:41
328です。
説明不足でした。VC++上では日本語きっちり表示されるんですけど、
コンパイルすると化けて出るんです。
338デフォルトの名無しさん:04/12/18 20:26:11
化けて出るんならお払いすればいいじゃない
339デフォルトの名無しさん:04/12/18 20:27:22
まずはソースを出せ。
話はそれからだ。
340デフォルトの名無しさん:04/12/18 20:32:08
328です。恥ずかしながらどの部分のソースを出せばいいか分かり
ません。
341デフォルトの名無しさん:04/12/18 20:34:49
全てをアーカイブしてその辺りのアップローダに放り込め。
342デフォルトの名無しさん:04/12/18 21:14:28
リソーススクリプトの中で言語やフォントを指定してるから
343デフォルトの名無しさん:04/12/18 21:21:01
そういえば外国語のソフトを日本語化して香具師もいるわけだし
たぶんソフト板で聞けば教えてくれるだろ
344デフォルトの名無しさん:04/12/18 22:46:54
328です。
 みなさんに頂いたレスを参考にいろいろ試した結果解決しました。
 例えばダイアログにボタンを配置した場合、リソースビューに出てくる
ダイアログのリソース名がIDD_DIALOGS_DIALOG[English(U.S.)]となってた
ので、プロパティーで言語をJapaneseにしてみましたところ解決しました。
 アプリウィザードの時には言語をEnglishにしか指定できないようになって
いるので、個別のリソースで指定できるとは思っていませんでした。
 日本語版を買おうか真剣に迷っていたので助かりました。
 ありがとうございました。
345デフォルトの名無しさん:04/12/18 23:23:10
VC++6.0sp6を使用しています。
ダイアログエディタでダイアログにコンボボックスを配置して適当なデータを
入れた状態でダイアログのテストをしてみるとコンボボックスの選択欄が
下がらず、テストで入れたデータも選択できません。

コンボボックスの設定もいろいろ替えてみましたが、やはり下がらないの
ですが、どこらへんに気をつければいいのでしょうか?
346デフォルトの名無しさん:04/12/18 23:34:11
三角のところをびろーーーーーんと伸ばせるよ
簡単だけど文章じゃうまく説明できない
347デフォルトの名無しさん:04/12/18 23:48:16
>>346
レスありがとうございます。
とりあえずびろーんと下げられました。

・・・と思ったら新たな問題が・・・・
 for( i = 0; i < gDevNum; i++){
  SendMessage( GetDlgItem( hWnd, IDC_LIST1), LB_ADDSTRING, 0, (LPARAM)gAllDev->description);
  SendMessage( GetDlgItem( hWnd, IDC_COMBO1), LB_ADDSTRING, 0, (LPARAM)gAllDev->description);
 }
のコードでIDC_LIST1のリストには文字が表示されるのですが
IDC_COMBO1のコンボボックスには文字が表示されません。
コンボボックスはソートにチェックを入れているのでこれで問題ないはずなんですが、
なぜ表示されないのでしょう??
348デフォルトの名無しさん:04/12/18 23:51:06
もしかして
http://pc5.2ch.net/test/read.cgi/tech/1102753497/
ここで質問してたひと?
349デフォルトの名無しさん:04/12/18 23:55:11
>>347
コンボボックスはテキスト+リストだから
SetWindowTxtするか、リストを選択してやる
350デフォルトの名無しさん:04/12/18 23:56:36
>>348
違います。ここが初めての質問です。

>>349
早速やってみますね
351デフォルトの名無しさん:04/12/19 00:03:46
>>349
SetWindowTextもリスト(charのポインタ配列でいいのかな?)も試してみましたが
いずれもうまくいきません。
352デフォルトの名無しさん:04/12/19 00:06:55
MSDNライブラリを見ると、_lrotr という intrinsic があるようなのですが、
ROR命令が生成されず、無視されてしまいます。

VC6.0 SP6 と VS.NET 2003 の両方で試しましたが、NGでした。
これを使えている方いらっしゃいませんか?

ちなみに、インラインアセンブラで書けばROR命令は使えるのですが、
コンパイラがインラインアセンブラで書いた行を越えての最適化をできなくなるらしく、
出力されるコードが遅くなってしまい、>>と<<を使った代替方法のほうが速かったです。
353デフォルトの名無しさん:04/12/19 09:54:37
>>352
最適化オプションに /Oi を付けるかReleaseビルドにすればよろし。
354352:04/12/19 21:00:14
>>353
ありがとうございます。
まさか・・・と思って、rorだけするテストプログラムを書いてみたら、ROR命令が生成されました。
間違いを探します。

/OiをつけなくてもReleaseのデフォルト(実行速度)では、ROR命令が埋め込まれました。
/Oiをつけると、前後で最適化が行われなくなりました。
355352:04/12/19 21:13:21
大ポカしていました。

_asm ror x, n
をコメントアウトして、
_lrotr(x, n)
と書いてしまっていました。

x = _lrotr(x, n)
と書き直してうまくいきました。

すみませんでした。
356デフォルトの名無しさん:04/12/20 00:07:29
質問なのですがMFCを使ったプログラミングの本で入門者にお勧めの物ってありますか?
C、C++、WinAPIは一通りやってある程度理解できたのですが「C++ユーザーのためのWindowsプログラミングの基礎知識」と言う本を
読んだのですがさっぱり理解できなかったもので…
もしかしたらスレ違いかもしれません。すいません
357デフォルトの名無しさん:04/12/20 16:40:36
入門者向けなら林晴比古氏ので良いかな。
C、C++、WinAPIを一通りやってある程度理解できたのなら
簡単に理解出来るだろう。
ただ、本当に簡単なサンプルしか扱っていないので
それでまともなプログラミングが出来るようになるかと言われると
返答に困るが。コントロールの使い方とかMFC全般について万遍なく
触れているから入門には良いと思う。
358356:04/12/20 23:57:36
遅くなりましたが
ありがとうございました。
359356:04/12/20 23:59:06
>>358
誰ですか?w

>>357
ありがとうございます。買ってみたいと思います。
360デフォルトの名無しさん:04/12/21 13:09:06
Spy++でDOS画面の メッセージ を スパイ しようと思いました。そしたら、

『指定の ウィンドウ は スパイ できません。
Windowsは、この ウィンドウ に関する メッセージストリーム への アクセス を許しません。』

と、なります。
ではどうやって、メッセージを受け取って処理すれば、いいのでしょうか?
361デフォルトの名無しさん:04/12/21 13:18:46
>>360
何のメッセージを欲しいのか知らんが、難しいんで内科医?
362デフォルトの名無しさん:04/12/21 16:58:07
>>360
ひとりごとはチラシの裏にでも書いとけ
363デフォルトの名無しさん:04/12/21 18:07:01
>>360
外側の枠の辺りじゃ駄目かね。
364デフォルトの名無しさん:04/12/21 22:38:32
Visual C++ 6.0 で C4067 のエラーが出ました。

たとえば、次のようなコードでこの警告が発生します。
#endif NO_EXT_KEYS
/Ze オプションを指定してコンパイルするか、次のようにコメント デリミタを使用すると、この警告が発生しません。

この /Ze オプションはどうやって指定すればいいのでしょうか?
365デフォルトの名無しさん:04/12/21 22:44:35
>>364
コメントアウトしろ。
366デフォルトの名無しさん:04/12/21 22:46:11
そうします。
367デフォルトの名無しさん:04/12/21 22:47:33
本来はエラーになってもいいはず。
368デフォルトの名無しさん:04/12/22 00:45:42
かなり初歩的とは思うんですが
どうにも自分では解決できそうにないのでご教授くださいまし・・・

心理テスト風に複数の質問(switch文)からさらに複数の質問へ、というのがどうも出来ません。
どうしたらよいのでしょう・・・
369デフォルトの名無しさん:04/12/22 01:18:05
>>368
心理テスト風に複数の質問(switch文)からさらに複数の質問へ
というプログラムを書く。
370デフォルトの名無しさん:04/12/22 01:29:00
理屈は分かるんですが・・・
なぜかうまくいかない。

自分のやり方だと二回目の選択肢は選択する暇も無く、全部さらしてしまいます…
371デフォルトの名無しさん:04/12/22 01:36:12
caseの最後にbreakが無いんじゃないの?
372デフォルトの名無しさん:04/12/22 01:45:42
とりあえず、ソースでも晒したらどうだい?
373デフォルトの名無しさん:04/12/22 01:49:34
switchのcaseの中にswitchを入れ子にしようとしてる?

なら、中カッコで括ってみ。
374デフォルトの名無しさん:04/12/22 02:03:44
#include <stdio.h>
#include <conio.h>
main() { char neta;
int A;printf("質問文\n");
printf("a: b: c:>");
scanf("%c",&neta);
switch(neta){
case'a':printf("ハズレ\n");A=2;
break;
case'b':printf("ハズレ\n");A=2;
break;
case'c':printf("ハズレ\n");A=2;
break;
default:printf("あたり\n");break;}
getch();if(A==2){printf("GAMEOVER\n");
}else{printf("次の問い\n");}
return 0;}
375デフォルトの名無しさん:04/12/22 02:04:36
こんな感じのやつにswitch文を追加したいのです・・・
376デフォルトの名無しさん:04/12/22 02:24:40
インデントが汚すぎる。
多分scanfとgetch()の後にrewind(stdin)入れとけば解決する予感・・・
377デフォルトの名無しさん:04/12/22 02:27:40
指摘ありがとうございます!

さっそくやってみようと思います!
378デフォルトの名無しさん:04/12/22 02:32:06
解決しました!!
本当にありがとうございました!!
379デフォルトの名無しさん:04/12/22 08:20:06
会議中に ClientApp を クライアントアププ って読んだら激しく笑われました。どうしてくれるんですか?
380デフォルトの名無しさん:04/12/22 08:38:49
フォームのサイズを変更したときに、フォーム内に貼り付けているピクチャボックスのサイズをフォームの大きさに合わせて拡大する方法を教えてください。
あと、ボタンの位置をフォームの右端で固定したいです。フォームのサイズを変更してもボタンが右端にくるようにするにはどうしたらよいでしょうか?
381デフォルトの名無しさん:04/12/22 08:49:14
>>380
最初のクライアント領域のサイズを覚えといて
増えたり減った分だけコントロールのサイズを調整
ボタンの場合はサイズじゃなくて位置を直す
382デフォルトの名無しさん:04/12/22 08:54:59
>>381
早速レスありがとうございます
ピクチャボックスの方はGetClientRect()で現在のフォームサイズを取得して、
CWnd::MoveWindow()でうまいことやればいけそうですね

ボタンの方はどうやるのかしら?
383デフォルトの名無しさん:04/12/22 09:02:04
ボタンも同じ方法でいけました。ありがとうございましたーぁぁぁ
CWnd *myButton1 =(CButton *)GetDlgItem(IDC_BUTTON1);
myButton1->MoveWindow(cx-100, 10, 90, 20);
384デフォルトの名無しさん:04/12/22 09:56:44
>>383
今更かもしれんが、ResizerでCodeGuruを探すと参考になりそうな代物が出てくると思うよ。
#一個や二個なら自前で調整してもいいけどね。
385デフォルトの名無しさん:04/12/22 11:35:26
char buffer[10];
strncpy(buffer, "AAA", 3);
strncat(buffer, "               ", 25);
strncpy(buffer, "BBB", 3);

文字列にスペースを25個追加する時に、いちいち"    "と
記述しないといけないんでしょうか?

VBならSpace(25)でできますが・・・
うまい方法があったら教えて下さい。
386385:04/12/22 11:37:02
うげ。修正します・・・。
char buffer[32];
387デフォルトの名無しさん:04/12/22 11:38:45
クラスにイベントハンドラを追加したらClassViewからそのクラスが消えちゃったよぅ(><)
cppファイルはちゃんとあって、イベントハンドラも追加されてるます。
どうやったらClassViewにクラスを表示させられますか?
388385:04/12/22 11:47:21
さらに訂正します。ここはVC++スレなので他所へ書きます。
お騒がせしました。
389デフォルトの名無しさん:04/12/22 12:15:11
>>387
ncb ClassView でぐぐる
390デフォルトの名無しさん:04/12/22 12:21:02
こんにちは

VC++version2003ですが、
VC++6にあったClassWizardが見当たりません。

どこにあるのでしょうか?
(ちなみに、VC++6の場合、メニュー→表示→ClassWizardにあるのはいうまでもないです)
391デフォルトの名無しさん:04/12/22 12:34:19
>>390
そういう超基本的なことは
まずヘルプ嫁
馬鹿なら本買え
392デフォルトの名無しさん:04/12/22 12:36:39
>>391
ウルセーんだよ
393デフォルトの名無しさん:04/12/22 12:50:50
>>390
バージョン2003からは、表示→ClassWizardはなくなりましたよ。
なので、自分で追記するしかないです。
めんどうですが。
394デフォルトの名無しさん:04/12/22 12:53:04
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15695&forum=7

件名:VC++ .NET のイベントハンドラ

ジロボット


会議室デビュー日: 2004/02/29
投稿数: 4 投稿日時: 2004-10-14 18:02
--------------------------------------------------------------------------------
VC6++を使ってたのですが、今回初めてVC++.NETを使い始めました。

VC6++のMFC ClassWizardに相当するものはないのでしょうか?
395デフォルトの名無しさん:04/12/22 12:55:05
http://216.239.57.104/search?q=cache:IB__OWzSqOUJ:www6.ocn.ne.jp/~simuphys/CNET2.html+VC%2B%2B.net+ClassWizard&hl=ja&lr=lang_ja
Visual C++ 6.0 ではMFCアプリケーションを使い,ClassWizardを使うことが出来ましたがこのやり方は .NET ではうまくいかないようです。
396デフォルトの名無しさん:04/12/22 12:58:02
>>389
おおおおおおお
さんくす!!!!!!!!!!
397デフォルトの名無しさん:04/12/22 13:01:20
>>390
VC++6のClassWizardは
VC++.NETのプロパティーウィンドウ内に移りました。

>>391
教えないんじゃ、このスレッドの存在意義ないじゃん。
出て行きなさい。
398デフォルトの名無しさん:04/12/22 13:41:12
>>397
いやいや、ただ教えるより自分で調べるクセ付けさせたほうが
本当の意味で初心者向けのスレと言える。
399デフォルトの名無しさん:04/12/22 13:59:14
>>397
は?
ここのスレの質問の半分ぐらいは俺が答えてるんだけど
400デフォルトの名無しさん:04/12/22 14:01:16
>>399
どおりで糞レスが多いと思ったよ w
401デフォルトの名無しさん:04/12/22 14:11:17
器の差ですな
402デフォルトの名無しさん:04/12/22 14:54:01
>>397
なんだその説明は
MSDNにちゃんとした説明があるだろ
403デフォルトの名無しさん:04/12/22 15:19:09
>>385
std::string str;
str += "AAA";
str.assign(25, ' '); //CStringならstr += CString(' ', 25);
str += "BBB";
404デフォルトの名無しさん:04/12/22 15:42:01
●クルマが自転車にはねられた!9台目
ttp://hobby7.2ch.net/test/read.cgi/car/1103695847/
・・・・・・                      
               ,,,-''" ̄" ゙̄`''ヽ,  
    ,.-'" ̄ ̄" ̄`ヽ, ノ/  u      ヽ  そ、そんなことはありませんよ…。
  /゙  ノ --  u --ヾ l ●    ● i  \
 /   ,/  ●    ● | i ´(_▼_ )  u ;   ゙ヽ
 `ヽ,,_,,( u  ( _▼_ )`/ ヽ   |∪|  _ノ ヽ,,___,ノ
    ./    ヽノ   ヽ,/   ヽノ ⌒ヽ,
    /_,,  / ̄ ̄ ̄ ̄/       l  |
_____(__)/  I.N.U /_____/ /__
     \/____/       (u ⊃
405デフォルトの名無しさん:04/12/22 20:49:02
メモリデバイスコンテキストに書き込んで
画面更新用スレッドでInvalidateRectを送って
WM_PAINTでBitBltして画面デバイスにメモリデバイスから
描画しているんですが、描画量が多くなってきたら
画面に変なゴミが残って、描画されなくなってしまいます。
ビットマップ転送の為に途中で作ったデバイスコンテキストは
削除しているのですが、何か心当たりあられましたら
お教えください。
406デフォルトの名無しさん:04/12/22 21:20:11
>>405
マルチスレッドみたいだけど、複数スレッドからGDIにアクセスしていいんだっけ?
407デフォルトの名無しさん:04/12/22 21:32:02
>>406
すみません、スレッドは1つだけで、
そこから表示するビットマップの位置情報を
更新したりする関数を呼び出した後、メモリデバイスに
描画する関数を呼び出して、最後にInvalidateRectといった用に
しております。描画用スレッドという言葉に語弊がありました。
失礼しました。
408デフォルトの名無しさん:04/12/22 21:41:31
>>407
DCにSelectObjectしたものを元に戻さず削除してないか?
409デフォルトの名無しさん:04/12/22 22:08:10
VC.net
キーボードとマウスからの入力はWM_KEYDOWNなどを受け取るので分かりますが、
ゲームのコントローラーからの情報はどうやれば分かるのでしょうか。
spy++でやってもコントローラーからの情報は一切受け付けません(出力を全て選択していますが該当するものは元々なさそう)。
コントロールパネルのゲームコントローラーは正常に受け付けています。
ゲームのコントローラーは[PS2のコントローラー]-[コンバーター(USB接続)]-[PC]と繋いでいます。
410409:04/12/22 22:12:20
1行目VC++.netの間違いです
411デフォルトの名無しさん:04/12/22 22:23:35
>>409
スレ違い
自分で作っててわからんはずがない
412デフォルトの名無しさん:04/12/22 22:30:12
>>408
確認したのですが、HPEN等は、
HPEN hPen,hOldPen;
hPen=CreatePen(PS_SOLID,1,RGB(0,0,0));
hOldPen=SelectObject(hBufferDC,hPen);
//ここで描画しています。
SelectObject(hBufferDC,hOldPen);
if(hPen)DeleteObject(hPen);
という様にやっております。
もしかしてhOldPen等も削除しなければいけないでしょうか。
後、ビットマップを描画する為に一時的に
オフスクリーンデバイスコンテキストに互換性のあるhMDCを
作成して、それをビットマップをロードしたhMBITMAPに結びつけて
オフスクリーンに転送しているのですが、
これを削除する時にも何かしなくてはいけないでしょうか。
長文すみません。
413デフォルトの名無しさん:04/12/23 01:05:10
>>412
SelectObjectで選択オブジェクトを変更したDCを破棄/解放するときは
元の状態に戻さなければならない。
DCに選択させたままのオブジェクト(ビットマップ、ペン等)を破棄してはならない。
414デフォルトの名無しさん:04/12/23 01:07:05
>>413
という事は、この場合でのhOldPen等は削除してはいけないのですね。
夜分遅くにすみません。色々試してみますね。
415デフォルトの名無しさん:04/12/23 08:59:55
クイライアントアププっw
416デフォルトの名無しさん:04/12/23 09:00:50
クライアントアププっ
417デフォルトの名無しさん:04/12/23 09:59:52
初心者に優しくないスレだなぁ。
正しく「アップップ」だって教えてあげればいいじゃん。
418デフォルトの名無しさん:04/12/23 10:03:33
クライアントアーッ!! ああーっ!!
419デフォルトの名無しさん:04/12/23 11:45:04
こうして『クライアントアププ』スレが出現し
変貌を繰り返し、今の「ぬるぽ」へ
420デフォルトの名無しさん:04/12/23 12:13:17
App ってあっぷっぷなの?プゲラウヒョーwww
あっぷっぷうぃざーどwwwwwwうはwwwww
421デフォルトの名無しさん:04/12/23 14:24:23
ビルドの時に以下の表示が出てIDEからビルドできません。
何が原因なんでしょうか…

LIBCD.lib(a_env.obj) : error LNK2019: 未解決の外部シンボル __imp__GetEnvironmentStrings@0 が関数 ___crtGetEnvironmentStringsA で参照されました。
Debug/EuclidStep2.exe : fatal error LNK1120: 外部参照 1 が未解決です。
422デフォルトの名無しさん:04/12/23 15:19:01
どっかでひろってきたソースがコンパイルできない
というなら完全なスレ違い。
自分で書いたソースなら何か心当たりがあるはず
423デフォルトの名無しさん:04/12/23 16:43:52
>>422
いや、自分の書いたソースが駄目だったんでVS付属のサンプルソースでも試して見たんですが駄目でした。
どのプログラムもビルドできないんです…
424デフォルトの名無しさん:04/12/23 17:30:40
>>423
とりあえず本でも買って勉強してください。
それでわからない時は掲示板で質問するといい。
425デフォルトの名無しさん:04/12/23 18:38:53
>>423
プロジェクトに〜.dllを参照する為に必要な〜.libをリンクしなければならない
機能を使っているかもしれないので、確認されてみてはどうでしょう。
426デフォルトの名無しさん:04/12/23 18:51:36
無意味にクライアントアププage〜
427デフォルトの名無しさん:04/12/23 18:55:18
はっきりいって初心者にVisual C++は使いこなせない
猫に小判
入門書の付録のコンパイラでも使ってなさい
428デフォルトの名無しさん:04/12/23 19:25:47
では何故にVC厨と言われてしまうのか
429デフォルトの名無しさん:04/12/23 19:41:02
派閥というか
VCを基準に発言すれば他から反感かうのは当たり前
430423:04/12/23 21:24:52
自己解決しました。
ランタイムライブラリが原因だったようです。
マルチスレッドDLLにリンクしたらエラーが出なくなりました。
431デフォルトの名無しさん:04/12/23 21:33:04
>>430
>>425 のヒント見たんなら自己解決とは言わんが
432デフォルトの名無しさん:04/12/23 21:33:16
>どのプログラムもビルドできないんです…

なんだこれは
生まれて初めてVCでコンパイルしたようなこと言ってて
かまととか
433デフォルトの名無しさん:04/12/23 21:35:50
>>431
来てない間にレスあったんですね…orz

>>425
その通りでした、こんな質問にレスをしていただいて有難うございます。
434デフォルトの名無しさん:04/12/23 21:53:18
横からすまんがありがとう、>>425
サンプルをDLしてもデバッグで失敗するのはVC++のバージョンが違うからだと思っていたけど、libのリンクが関係してたのを初めて知りますた(;´Д`)
CMDでCを初めてコンパイルに成功したような感動を味わっているので思わずカキコ
435デフォルトの名無しさん:04/12/23 22:10:08
>>434
たいていのサンプルはそのままビルドすればOKですが
VS付属のサンプルなら当然なにもしなくてもOKだし
追加でリンクが必要ならそう書いてあるのが普通
なんか根本的に間違ってるのでは?

だいたいマルチスレッドDLLなんて追加でリンクするもんじゃないですよ
436デフォルトの名無しさん:04/12/23 22:21:23
>>435
MSDNの英語版は書いてあることすら知らなかったりするけど、一般サイトのサンプルは検索して出てきたところには無くて別のページにあったり・・
それともサンプルのcppを開くときの旧バージョン〜変換するときにそういったデータが飛んでいるのかな?
437デフォルトの名無しさん:04/12/24 05:47:26
任意で3点(x1,y1)、(x2,y2)、(x3,y3)の点を打ち、その点から中心点(cx,cy)と半径(r)を求め、
そして、基準点を(cx+r,cy) として(x1,y1)と(x2,y2)と (x3,y3)の各々の角度を計算し、
あと (x1,y1) から(x2,y2) を通り(x3,y3)までの円弧を求めるプログラムを作成していただ
けないでしょうか。
438デフォルトの名無しさん:04/12/24 05:54:02
>>437
意味不明
スレ違いだし。
宿題スレ行っても放置されるかも。
439デフォルトの名無しさん:04/12/24 16:01:10
すみません さっき別スレに書いてしまいました

VC++でMFCのプロジェクトを作っているんですが、
CSVファイルを読み込んで、1カラムずつ
取得してファイルの最後まで読み込むというロジックをつくりたいんです

@ Readfile で、 file のEOF 検出ってできますでしょうか?
A 1カラムずつの取得ってどうやるんでしょうか?
   readfile だと、バイト取得しかできないのでしょうか?

2点お願いします
440デフォルトの名無しさん:04/12/24 16:38:12
こんにちは。

プログラム全体の最適化オプション(/GL)をつけると、
アセンブリコ-ドが出来ないのですが、何故でしょうか。
441デフォルトの名無しさん:04/12/24 16:58:45
>>440
意味もわからんのにいじるな基地外
442デフォルトの名無しさん:04/12/24 17:02:09
>>439
MFCならCFile使うんじゃないか?
443440:04/12/24 17:03:04
>>441
うるせー場可。困ってんだよ。
もうこねーよ ケッ(゚Д゚)パ-ヤ
444439:04/12/24 17:23:38
>>442
なるほどです ていうか使ったことがなかったので
想像できませんでした
ちょっと、調べてこちらで作ってみます 
ありがとうございました
445デフォルトの名無しさん:04/12/24 17:30:41
>>444
こういうのとか
探せばサンプルみつかるよ
http://www.codeproject.com/file/importstringvalues.asp?print=true
446デフォルトの名無しさん:04/12/24 20:57:45
>439
ADOでできなかったっけ?

じゃなきゃ、1レコード毎(CRLF検出)にカンマ区切ってやるしかない?
447デフォルトの名無しさん:04/12/24 21:02:45
>445
そういう方法があったのね。
なるほど。
448デフォルトの名無しさん:04/12/25 02:29:41
VC6の比べて、VC7.1のコンパイラが異様に遅いのですが、何か工夫できることはありますか?
449デフォルトの名無しさん:04/12/25 02:38:19
>>448
メモリを増やす。
ディスクを置き換える。
CPUを(マザボごと)置き換える。
諦める。
450デフォルトの名無しさん:04/12/25 02:42:32
>>448
バックグラウンドで動いてるエロゲーを終了させる。
スタートアップメニューからエロゲーを削除する。
451448:04/12/25 04:52:13
>>449
ディスクアクセスはほとんどないので、メモリもディスクもネックになっていないと思います。
タスクマネージャで見るとCPU使用率が100%なので、本当にコンパイラが遅いのだと思います。

CPUは・・・たしかに今時1GHzじゃダメですか・・・。VC6なら十分だったのに・・・。

>>450
そもそもエロゲーなんてインストールしてません。
452デフォルトの名無しさん:04/12/25 10:17:32
VC++で特定フォルダのファイルの書込み更新の監視プログラム
を作成しようと考えております。

http://www.athomejp.com/goldfish/api/filechangenotification.asp
を参考に行っているのですが、ファイルの書込みを行った時点でスレッ
ドが2重で実行されてしまいます。

これを回避する方法はあるのでしょうか?
Sleep等で時間調整を行ってもだめでした。

FindNextChangeNotificationで次期の監視を開始する際にうまく
いっていないような気がします。
453デフォルトの名無しさん:04/12/25 10:44:33
WindowsXPユーザーです。フォルジュに
rtf2latexのソースらしいものが落ちています。
これを拾ってうちのXPマシンで使いたい。

いえには、購入したのにインストールしてないVC++の
CDがあります。こいつをインストールして、うえのソースを
コンパイルするとRTF。。。。使えるようになりますか?
C言語系統はまったく初心者です。VBとかのコーディングは外部
装置を制御するためやらされてますが。
教えてください。
454デフォルトの名無しさん:04/12/25 10:46:26
http://sourceforge.net/projects/rtf2latex2e


rtf2latex2e is a program that translates RTF (rich text format) files into LaTeX
files. It translates text formatting, tables, figures, and equations. The resulting
LaTeX files are quite readable and suitable for editing.

License: GNU General Public License (GPL)
Programming Language: C
Topic: Word Processors
Translations: English
Project UNIX name: rtf2latex2e
Package Version Date Notes / Monitor Download
rtf2latex2e-win 1.0fc1 November 26, 2000 - Download
455デフォルトの名無しさん:04/12/25 11:56:17
>>454
誤爆?文盲?
UNIXと書いてあるだろ
456デフォルトの名無しさん:04/12/25 12:41:53
すまん。なかにバイナリファイルがあって、そこにRTFファイル
投げ込むだけでした。
457デフォルトの名無しさん:04/12/25 13:08:42
>>451
Debugビルド同士を較べても遅い?
Releaseビルドなら7.1の方がより最適化が細かいから遅いのも仕方ないと思うけど。
#つーか、問題になるなら分割すりゃいいじゃん。

>>452
ソース晒してみ。
私の場合は無限待ちじゃなくてPollingで実装した記憶がある。
458デフォルトの名無しさん:04/12/25 13:32:38
↓のコードでリソースファイルに書いたバージョン番号などを取得しようとしても失敗します。解決策を教えていただけないでしょうか
static BOOL OnInitDialog( HWND hWnd)
{
    char filePath[_MAX_PATH];
    char labelText[256], verInfo[512];
    char *buff;
    UINT size;

    GetModuleFileName( (HINSTANCE)( GetWindowLong( hWnd, GWL_HINSTANCE)), filePath, sizeof(filePath));
    GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductName", (LPVOID*)buff, &size);
    strcpy( labelText, buff);
    SetWindowText( GetDlgItem( hWnd, IDC_PRO_NAME), labelText);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\LegalCopyright", (LPVOID*)buff, &size);
    strcpy( labelText, buff);
    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\CompanyName", (LPVOID*)buff, &size);
    strcat( labelText, buff);
    SetWindowText( GetDlgItem( hWnd, IDC_COPYRIGHT), labelText);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductVersion", (LPVOID*)buff, &size);
    sprintf( labelText, "Version %s", buff);
    SetWindowText( GetDlgItem( hWnd, IDC_VERSION), labelText);

    return TRUE;
}
459デフォルトの名無しさん:04/12/25 13:58:25
どんな風に失敗しているのかわからないので
対処のしようがありません。

↓次の方どうぞ
460458:04/12/25 16:44:20
これは失礼を
VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductName", (LPVOID*)buff, &size); 
でbuffに何も入ってきません(NULLになる)。
461デフォルトの名無しさん:04/12/25 17:01:52
>>460
> GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo);
成功してるのか?
462458:04/12/25 17:19:54
GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo); 
関数は成功しているようです。(戻り値は1でした)
463デフォルトの名無しさん:04/12/25 17:37:40
>>460
> \\041104b0\\
言語とコードページの指定は本当にあっているのか?
464458:04/12/25 17:40:53
言語コードやその後ろのProductNameなどはリソースファイルからコピペしたもので、
間違いはないと思います
465デフォルトの名無しさん:04/12/25 18:00:13
MSDNライブラリからのコピペ
一度このとおりにやってみたら?

--------------------------------------------------------
// 列挙された言語とコードページを格納するために使われる構造体。
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;

// 言語とコードページのリストを読み取る。
VerQueryValue(pBlock,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);

// 各言語とコードページのファイルの説明を読み取る。
for(i=0; i <(cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++)
{
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);

// i 番目の言語とコードページのファイルの説明を取得する。

VerQueryValue(pBlock,
SubBlock,
&lpBuffer,
&dwBytes);

}
466デフォルトの名無しさん:04/12/25 19:07:05
>>452
それで普通。書き込み一回で二回の通知がなされる。
一回だったらむしろ異常。
467458:04/12/25 19:29:41
使用している言語はVC++6sp6です。
うちのMSDNライブラリには>>465さんのコードが見当たりません。
また、このコードを実行してみましたが、
VerQueryValue(pBlock, 
TEXT("\\VarFileInfo\\Translation"), 
(LPVOID*)&lpTranslate, 
&cbTranslate);
でサイズ(cbTranslate)が0byteになります。もちろんforループもすっ飛ばして実行されません。
なんでなんだろうorz
468451:04/12/25 20:52:48
>>457
Debug版のビルドでも遅いです。
分割してみたら、だいぶ速くなりましたが、まだまだ圧倒的に遅いです。

VC6では/Zmオプションをつけないとヒープ不足のエラーが出るので気がついたのですが、
VC7からコンパイラが動的にメモリを確保するようになって、大きなソースの処理時間が指数関数的に伸びたのかも。
469デフォルトの名無しさん:04/12/25 21:43:31
そりゃ関数が阿呆みたいにでかいんだろ。
470デフォルトの名無しさん:04/12/25 22:18:26
>>468
もっとカルシウムを摂取したらいいんじゃないの?
471デフォルトの名無しさん:04/12/25 22:19:41
>>468
プリコンパイルヘッダを有効に使うとか
472デフォルトの名無しさん:04/12/25 23:01:46
>>467
pBlock バッファを正しく初期化するために、VerQueryValue を呼び出す前に、
GetFileVersionInfoSize と GetFileVersionInfo の各関数を呼び出してください。
473デフォルトの名無しさん:04/12/25 23:40:46
ダイアログを必ず最前面にポップアップ表示したい思い、
プロパティのSetForegroundをTrueに設定しています。
親ダイアログが最小化されている時は、親は最小化のまま
目的のダイアログだけがポップアップ表示されますが、
親ダイアログが他の画面の裏に隠れている時は、目的の
ダイアログと一緒に表に表示されてしまいます。
後者の場合に目的のダイアログだけを最前面に表示させる
ことは無理でしょうか?
474451:04/12/26 01:54:51
>>469
ちょっと大きくてたくさんあります。

>>470
気が短いのは確かですが、10時間越えるのでコンパイルは寝ている間にやってます。
翌朝になっても、まだ終わってなかったりするので、ちょっとイライラしています。

>>471
アドバイスありがとうございます。
プリコンパイルヘッダに含まれる範囲に共通部分を移してみたら、すこし軽くなったような気がします。

そもそも、何か重大な間違いをしているような気もします。
475デフォルトの名無しさん:04/12/26 02:31:13
面白いなぁ。あるプロジェクト(プロジェクトファイルと言う意味でなく仕事の)に含まれる
全プロジェクトをフルビルドしても恐らく一時間も掛からないんだがなぁ。
CPUクロックが1GHzでディスクも余り回ってないならメモリもそれなりなんだろうし…
どうやったら10時間もコンパイルさせ続けることができるのか寧ろ教えて欲しいや。
476デフォルトの名無しさん:04/12/26 03:11:08
>>474
10時間超えるコンパイルて……実はSystem-CからFPGAデータコンパイルしてるとかじゃないよな??
477デフォルトの名無しさん:04/12/26 04:37:51
ソースやワークディレクトリがネット上にあって300bpsで繋いでるとか
478デフォルトの名無しさん:04/12/26 04:50:11
分散コンピューティングをお勧めする
479デフォルトの名無しさん:04/12/26 06:06:36
マルチポスト違反で本当に済みません。
ttp://pc5.2ch.net/test/read.cgi/tech/1102900418/l50
で相手していただけなくなりまして。。。

>>コンソールアプリとしてプロジェクトを作り直したら?
そうしてみます。変更できないんですね。。。。
「変更」する方法はありますでしょうか?

別の質問を立て続けに申し訳ないですが、
test = delay_line(1, &wire_data0_bus[0][0], 0, 2, 256);
で、testの返値の設定が無いといけない理由と、
”&wire_data0_bus”と2次元配列での先頭アドレス渡しが出来ない理由を教えていただけないでしょうか。
480451:04/12/26 06:29:50
だいぶスレの主旨から外れてしまっていて恐縮です。

>>475
どうしてこんなにコンパイルに時間がかかるのか、わかったらよいのですが・・・。
リリース版だとEXEのサイズが40MBくらいなのですが、
デバッグ版だと220MBありまして、メモリ2GB積んでいても実行することすらできませんでした。
(何のエラーも表示されずに終了してしまう。)

>>476
Visual C++って、FPGAの論理合成(でしたっけ?)に使えるんですか?

>>477
いいえ、ローカルのHDD上です。

>>478
その手がありましたか。
でも、寝て待ちます。(いや、起きてるけど。)
481デフォルトの名無しさん:04/12/26 07:31:23
何かが根本的に間違っている悪寒
482デフォルトの名無しさん:04/12/26 09:25:24
多重インクルードと見た
483デフォルトの名無しさん:04/12/26 10:21:44
プログラミング自体の話題ではないんですが、複数に関数のまとめ方にアドバイスをいただけないでしょうか。
沢山の関数を扱う場合、一つのヘッダ・ファイルとして、インクルードするのが普通なのか、そうではないのかも分かっていないのですけれど。
同じプロジェクトの別関数ファイル”hoge.c”を他ファイルで呼びたい場合、どうすればよいのでしょうか。
プロトタイプ宣言でしょうか?

環境はVC++ 6.0です。よろしくお願いします。
484デフォルトの名無しさん:04/12/26 10:37:38
>>483
Cスレ行けば?
485デフォルトの名無しさん:04/12/26 10:50:21
hoge.h に宣言書いて hoge.c に定義を書く。
使う場合は hoge.h を inlcude して関数呼ぶ。
486デフォルトの名無しさん:04/12/26 10:57:10
>484
>485
レスありがとうございます。
>hoge.h に宣言書いて
プロトタイプ宣言ということでしょうか?

>Cスレ行けば?
行こうと思います。
ありがとうございました。
487デフォルトの名無しさん:04/12/26 12:01:31
>>480
仕事で書いているプログラムは(一本が)Releaseで100MB、Debugで500MBくらいざら。
でもコンパイル時間はフルビルドでも分単位。
#つーか、ビルドの出力を確認する人間の方が間に合わない程度。
メモリ128MBでも問題なく起動できる。

なので、>481に同意。
488デフォルトの名無しさん:04/12/26 13:21:28
HDDのDMAが効いてないとか。
489デフォルトの名無しさん:04/12/26 15:12:21
>>451>>483
よって多重インクルード説でケテーイ
490デフォルトの名無しさん:04/12/26 15:38:54
ヘッダファイルの中身書いてみそ
491デフォルトの名無しさん:04/12/26 16:27:06
Releaseで100MBって、中間ファイル?それとも
一個のexeファイル?
492デフォルトの名無しさん:04/12/29 11:09:28
ソース内でランタイムライブラリの指定(/MD, /MTなど)の方法を教えてちょんまげ
493デフォルトの名無しさん:04/12/29 11:26:04
pragma
494デフォルトの名無しさん:04/12/29 11:30:52
その後の続きが欲しいんです…^^;
495デフォルトの名無しさん:04/12/29 11:36:49
pragmaではcomment(linker,"〜")でリンカオプションしか指定できないのでは…?
コンパイルオプション設定出来たっけ
496デフォルトの名無しさん:04/12/29 19:17:42
>>495
できるよ
497デフォルトの名無しさん:04/12/29 21:10:53
>>496
詳しく
498デフォルトの名無しさん:04/12/29 21:43:21
>>491
実行ファイルだけで、100MBだったら凄すぎですね。
一体何ステップあるのかと… いや、他のリソース部分が大きいのかな?
しかしみなさん、相当でかいアプリ書いてますね。
499デフォルトの名無しさん:04/12/29 22:05:13
>>497
#pragma optimize で、最適化方法をコンパイラに指示出来る。
500デフォルトの名無しさん:04/12/29 22:08:17
>>499
>>492は?
501デフォルトの名無しさん:05/01/01 16:01:36
msdn
502デフォルトの名無しさん:05/01/01 17:17:49
場違いな質問が続いたせいか、ぱったり客が途絶えたな
503デフォルトの名無しさん:05/01/01 23:53:44
VS.NET 2003をインストールしてから、
PCのシャットダウンに異様に時間がかかる(何かのタイムアウト待ちをしてる?)のですが、
何か修正パッチ等は出ていますか?
504デフォルトの名無しさん:05/01/02 06:21:11
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript は Web 制作板、CGI は Web プログラミング板へ。
> 業界談義、愚痴はプログラマ板へどうぞ。
> ゲーム関係の話題はゲーム製作板へどうぞ。
> ネタ、板とは関係の無い話題はご遠慮ください。
505デフォルトの名無しさん:05/01/02 21:43:18
>487
ステップ数どれくらいのプログラムですか?
506デフォルトの名無しさん:05/01/02 21:58:51
>>505
その話どっかよそでやってくれない?
こことか

「コンパイラ・スクリプトエンジン」相談室4
http://pc5.2ch.net/test/read.cgi/tech/1100097050/l50
507デフォルトの名無しさん:05/01/02 22:04:50
猫でも〜のページのVisualStudio.net設定のとこ、Bisualって書いてるのはつりか?
508デフォルトの名無しさん:05/01/02 22:08:18
>506
イヤです。
509デフォルトの名無しさん:05/01/03 08:16:46
VC++6.0のSDKで、タスクバーにアイコンを表示させるのはどうやるのでしょうか?
また、入力フォーカスを持ってなくてもWM_KEYDOWNなどのメッセージを受け取る方法はどうやるのでしょうか?
510デフォルトの名無しさん:05/01/03 08:54:15
ShellNotifyIconとNOTIFYICONDATA構造体を使うんだけど、注意点が多い。まず、N~I~D~には現在3までのバージョンがあって、アプリがサポートするサイズを事前に指定すべきこと。可変長構造体を使うと良い。
511デフォルトの名無しさん:05/01/03 09:02:59
次に、タスクバーが破壊され再構築された時にRegisterWindowMessage(TEXT("TaskbarCreated"))のメッセージが届いたら、アイコンを再び追加すること。
512デフォルトの名無しさん:05/01/03 09:09:18
>509
RegisterHotKeyでホットキーを設定するとよい。ユーザがホットキーを指定するためのコントロールも用意されている。
513デフォルトの名無しさん:05/01/03 09:18:50
こうしたN~I~D~の管理は大変なため、クラスでカプセル化するのが普通。
514デフォルトの名無しさん:05/01/03 09:59:19
N~I~D~ って略し方ダサいね。
515デフォルトの名無しさん:05/01/03 10:07:44
NID.だと初心者が間違え易い。門門のやり方でいいだろう
516デフォルトの名無しさん:05/01/03 10:18:25
門門ってなに?
517デフォルトの名無しさん:05/01/03 10:30:46
bob gates
518デフォルトの名無しさん:05/01/03 10:38:34
タスクバー?
タスクトレーだろ?
519デフォルトの名無しさん:05/01/03 10:56:30
Oracle.exeでも29MBだぞ。100MBなんてコンパイルの仕方間違ってる
(多重インクルードとか)か、根本的に設計ミスしてるだろ。
520デフォルトの名無しさん:05/01/03 13:02:31
きっと凄い大きな配列とか持ってるんだろ。
521デフォルトの名無しさん:05/01/03 13:55:47
リソースがでかいのかもしれない。
522デフォルトの名無しさん:05/01/03 14:06:17
>>520
素人的考えかも知れんが配列をいくら確保しようが
バイナリファイルの大きさは変わらんのじゃ?
実行時のメモリ使用量が大きくなるだけで

さらに素人的な発想で、固定の文字列埋め込みまくってるとか?
なんかヘルプ的なものをソースの中に埋め込んでるとか
523デフォルトの名無しさん:05/01/03 14:07:56
>バイナリファイルの大きさは変わらんのじゃ?
実は書いた直後にそんな気がしたがやり過ごそうと思った。
524デフォルトの名無しさん:05/01/03 15:17:41
ソースを読むとき青旗のブックマークをよく使ってるんですけど
a.cppにつけたブックマークからb.cppにつけたブックマークに飛ぶにはどうすればいいんでしょうか?
a.cpp内のブックマークにはぴょんぴょん飛べるんですが、別のソースのブックマークには飛べません。
そういうもの?
525デフォルトの名無しさん:05/01/03 15:35:28
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript は Web 制作板、CGI は Web プログラミング板へ。
> 業界談義、愚痴はプログラマ板へどうぞ。
> ゲーム関係の話題はゲーム製作板へどうぞ。
> ネタ、板とは関係の無い話題はご遠慮ください。
526デフォルトの名無しさん:05/01/03 16:42:14
>525
めんどくさい。堅い事言うな。書く人間がいなくなるぞ。
527デフォルトの名無しさん:05/01/03 16:44:17
>>526
お前が居なくなっても誰も困らないよ
528デフォルトの名無しさん:05/01/03 16:46:38
>527
バカ。俺みたいな厨がいなくなるわけねーだろ。
まともな人間のことだよ。
529デフォルトの名無しさん:05/01/03 17:03:43
HELPに書いてあるじゃん
調べるのめんどいか馬鹿で探せないかどっちかだろ
530デフォルトの名無しさん:05/01/03 17:10:37
ブックマークのない文書開くと
ボタンがグレーになるな
Windowsの基本も知らん初心者か?
531524:05/01/03 17:57:04
このスレであってると思った。
よくわからんがスマンカッタ。

もうちょっと調べてみる。
532デフォルトの名無しさん:05/01/03 19:23:04
すみません、教えてください。
GetForegroundWindowを使って、アクティブなウィンドウ(MSDNでは
前景ウィンドウという表記でした)に対して操作を行おうとしています。
アクティブなウィンドウが切り替わったときにそれを追尾するためには
タイマーを使って常時監視しておくしかないでしょうか。
それとも何かメッセージが発行され、それをチェックすればよいので
しょうか。
533デフォルトの名無しさん:05/01/03 19:36:18
メッセージフックでWM_ACTIVATEを拾えば?
534532:05/01/03 19:53:22
>>533
早速ありがとうございます。
フックは使ったことがないのですが、いただいたキーワードで
やり方を調べてみます。
535509:05/01/04 18:11:05
色々ありがとうございます
検索したら猫でもわかるにありました・・・
まだまだ初心者なので試行錯誤しながら頑張ってます
どうしても分からないことがあったらまた教えてください・・・
536デフォルトの名無しさん:05/01/04 22:00:37
フックも知らなくて卒論書けるか?
537デフォルトの名無しさん:05/01/04 22:40:42
MFCで分割ウィンドウを作って文字を表示して、選択とかはできるけど書き込みはできないように
するにはどうしたらいいんでしょうか?Iriaの下の部分みたいな感じです。
CEditでReadOnly使ってやろうとしたら、分割ウィンドウを作るにはCViewの派生クラスじゃないと
いけないみたいなんです。でもCEditViewにはそういう機能がなさそうで困ってます。。
538デフォルトの名無しさん:05/01/04 22:49:16
エスパーよろしく。
539デフォルトの名無しさん:05/01/04 22:52:43
フォームビューにCEditはっつけ
540デフォルトの名無しさん:05/01/05 01:07:27
>>537
GetEditCtrl().SetReadOnly(TRUE)
で、どないや?
541デフォルトの名無しさん:05/01/05 04:00:18
ある特定のプロジェクトのmain.cppを編集後に上書き保存したり
コンパイルをしようとすると100%VC++がフリーズするようになりました

cppを作成しなおして貼り付けたり
全て手打ちで全て打ち直してもダメでした
どうしたら直るんでしょうか?
542デフォルトの名無しさん:05/01/05 04:02:58
プロジェクトファイルがぶっ壊れてるんじゃないの?
543541:05/01/05 04:17:18
>>542
プロジェクトを作成しなおしたら固まらなくなりました

これもも試すべきでした
ありがとうございました
544デフォルトの名無しさん:05/01/05 09:00:19
>>539
>>540
ありがトンどっちでも逝けました。
調べてたらこういう方法もあるみたいです。
ttp://techtips.belution.com/ja/vc/0000/
545デフォルトの名無しさん:05/01/05 10:48:27
質問なのですが幾ら探してもクラスウィザードの表示方法がわかりません…
ヘルプもググったりもしましたが全然表示方法については書かれていませんでした…。
バージョンは.net 2003です
546デフォルトの名無しさん:05/01/05 11:05:38
>>545
ついこの前、このスレでほとんど同じ質問があった。
しかもMSDNに非常に詳しい説明がある。
547545:05/01/05 11:51:30
>>546
>>394にありました。
ウヒヒすいません。
548デフォルトの名無しさん:05/01/05 11:53:59
VC7系のClassWizardは、慣れるまでしばらく使いにくいね。

VC6のClassWizardは、ここはClassWizardがいじるからね、というコメントの印の中を変更するのに、
VC7系のClassWizardは、それを無視して、いちばんうしろに追加してくれたりして、最初びっくりした。
549デフォルトの名無しさん:05/01/05 12:35:29
>>547
>ウヒヒすいません。
萌え。
550デフォルトの名無しさん:05/01/05 19:34:05
VC7って何?
551デフォルトの名無しさん:05/01/05 20:03:46
>>550
言いたいことはわかる

だがインストールすると
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7
というパスになるのだよ
552デフォルトの名無しさん:05/01/05 20:08:13
>551
そうなんだ。どうもです。
553デフォルトの名無しさん:05/01/05 20:10:10
素だったのか
554デフォルトの名無しさん:05/01/05 22:49:52
179*くらい感じでした。
555デフォルトの名無しさん:05/01/05 23:12:04
良スレハケーン(大学受験板)・・・スレタイを見よ。
10!=・・・・ って・・・・
http://school4.2ch.net/test/read.cgi/kouri/1102125273/

これ真だよな、な、そういってくれよママン・・・

なんともム板にふさわしいスレタイではないか。
556デフォルトの名無しさん:05/01/06 01:55:44
くっ くそう…
あちこちで貼られると逆に興味そそられるではないか…
557デフォルトの名無しさん:05/01/06 02:07:09
>>556
行くだけ無駄。
558デフォルトの名無しさん:05/01/06 16:48:14
HPENからそのペンの色を取得することはできますか?
559デフォルトの名無しさん:05/01/06 17:01:46
>>558
HPEN pen; /* 取得済みとして */
LOGPEN lpen;
int r,g,b;

GetObject(pen, sizeof(lpen), &lpen);
r = GetRValue(lpen.lopnColor);
g = GetGValue(lpen.lopnColor);
b = GetBValue(lpen.lopnColor);
560558:05/01/06 19:06:30
ありがとうございました
561デフォルトの名無しさん:05/01/07 04:05:19
こちらのスレに誘導されてきました。
VC++6.0を使用しています。
コーディングしているとたまに、全く反応が無くフリーズしたような状態になります。
フリーズ時間は数十秒〜1分くらいで、発生頻度は一定していません。
全く出ないときもありますし、30秒に1回くらいのペースで発生するときもあります。
自動保存にしては頻度が高すぎます。
フリーズするのはVCだけで、他のソフトは普通に操作できます。
CPU負荷にも変化は無いので、CPU100%で重くなっているというわけではないようです。

OSはWinXP SP2ですがSP1の頃からずっと発生していました。
562デフォルトの名無しさん:05/01/07 06:00:46
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
> ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
> Javascript は Web 制作板、CGI は Web プログラミング板へ。
> 業界談義、愚痴はプログラマ板へどうぞ。
> ゲーム関係の話題はゲーム製作板へどうぞ。
> ネタ、板とは関係の無い話題はご遠慮ください。
563デフォルトの名無しさん:05/01/07 07:29:04
>561

>562はスルーしていいよ。
564デフォルトの名無しさん:05/01/07 07:30:26
>562
>プログラム・ソフトの使い方

ここにVisual Studioが含まれないのは暗黙なのですが・・・
まあちゃんと決まりを読んでる君はちょっと偉いけど。
解釈が間違ってたね。どんまい。
565デフォルトの名無しさん:05/01/07 08:07:07
>>561
やはり再インストールかな。
566デフォルトの名無しさん:05/01/07 09:27:38
>561
win側の問題かも。空きメモリ、空きディスク容量、CPU時間、ウイルスとスパイウェアのチェック、ディスクのデフラグ状況など確認せよ
567デフォルトの名無しさん:05/01/07 12:29:19
>空きメモリ、空きディスク容量、CPU時間、ウイルスとスパイウェアのチェック、ディスクのデフラグ状況など確認せよ

ここはPC初心者板か?
568デフォルトの名無しさん:05/01/07 12:30:44
>やはり再インストールかな。

ここはサポセンですか?
569デフォルトの名無しさん:05/01/07 15:56:06
Cの文法に関わってくるかも知れないんですが、
VisualC++ でプロジェクトを作っていて、
ヘッダファイルに
struct { int a;
char b[16]
} yamada;
struct yamada s_yamada;

と宣言して、他のCPPファイルでこのメンバにデータを書いたり
読んだりしたいのですが、error LNK2005 がでてしまいます。

プロコンパイルヘッダを使用しない設定でデバッグコンパイル
しているんですが、文法的に変なのかどうか教えてください
570569 :05/01/07 15:59:20
追記

ヘッダには、>>569のように構造体宣言し、
cpp ファイルの関数内で、s_yamada.a とか s_yamada.b とか
いうふうに使っています(typedef 宣言等はしておりません)

ヘッダに構造体の実態宣言すると、
構造体宣言が、だぶったりするんでしょうか?
571デフォルトの名無しさん:05/01/07 16:03:44
>>569
C++では構造体を構造体を使うときにstructは不要。

struct yamada {int a; char b[16]; };
yamada s_yamada;

あとヘッダでそういうことをしたければ
extern yamada s_yamada;
としておいて、どこかのソースで実体を宣言する。
572569 :05/01/07 16:11:36
>>571様 御返答ありがとうございます

struct yamada {int a; char b[16]; };
yamada s_yamada;
はヘッダに書いてはいけないということなんでしょうか?

ヘッダに書くとしたら、
extern yamada s_yamada;
のみで、別のクラスの関数に、
struct yamada {int a; char b[16]; };
などを宣言するという形になるんでしょうか?
573デフォルトの名無しさん:05/01/07 16:34:13
//yamada.h
struct yamada { int a; char b[16]; }
extern yamada s_yamada;

// a.cpp
#include "yamada.h"
yamada s_yamada;
/* 以下s_yamadaを使うソース */

// b.cpp
#include "yamada.h"
/* 以下、s_yamadaを使うソース */

s_yamadaを実際に定義するのはa.cppだけでいい。
後はヘッダのextern yamada s_yamada;を通して、
a.cppで定義された実体を読み書きできる。
もちろん、a.cppに限定する必要はなくて、
ヘッダを利用するソースのいずれかに定義されていればいい。
574デフォルトの名無しさん:05/01/07 16:35:24
授業でひらがなの読み書きとか
足し算引き算とか質問されたらムカつくだろ
575569 :05/01/07 16:40:55
>>573
御丁寧にありがとうございました。
実践してみたら、うまくいきました

確かに、複数箇所で実態宣言していたので、
重複したエラーというメッセージが表示されていたようです

ありがとうございました。

576デフォルトの名無しさん:05/01/07 16:51:24
>>575
この板にCやC++のスレが山ほどあるの知ってる?
そういう質問をなんでわざわざここで聞くかな
577デフォルトの名無しさん:05/01/07 21:15:51
class A{};
class B : public A{};
class C : public A{};
...
B b;
C c;
A& a = true ? b : c;

error C2446: ':' : 'C' 型から 'B' 型への変換ができません。

なんでこんなエラーが出るんでつか?
578デフォルトの名無しさん:05/01/07 21:31:04
コピペ?
579デフォルトの名無しさん:05/01/07 22:04:31
>>577
スレ違いだが
part15参照
580デフォルトの名無しさん:05/01/07 22:40:08
>>577
int型じゃないとダメというのだっけ。
581577:05/01/07 22:55:13
>>578
自分で書いたものですが・・・似たようなテンプレあるのでしょうか?

>>579
ありがとうございます。でも過去ログになってて読めませんでしたorz

>>580
真偽のそれぞれの結果の型が同じ場合にはちゃんといくんですよ・・・
582デフォルトの名無しさん:05/01/07 23:01:15
>>581
VC++と関係ない話題で恐縮ですが、
3項演算子は型を合わせる
583デフォルトの名無しさん:05/01/07 23:36:51
>>577
前スレより
>コンパイラは x ? y : zという演算の型を,
>yとzの型を元にいくつかの複雑なルールに従って決めようとします.
>そしてyとzの型が関係の無い型のポインタ型であるときには,
>この演算結果の型を決めることが出来ずコンパイルエラーとなります.

A& a = true ? (A&)b : c;
こうすればいい。
584577:05/01/08 02:37:42
>>582
>>583
なるほど、確かにおっしゃられてるような挙動になってますね。
ただ、私は三項演算子って、生成されるバイナリコードは
if-else が内部的に展開されてるような先入観を持ってしまっていたので
変だなー、と思ってしまった次第です。
左辺値への代入の前に先に右辺値の型をコンパイル時に
確定させるようになってるから例のコンパイルエラーが出てるんですね。
実行時に意図しないキャストが内部で起こってて余計なオーバヘッドが発生しそうですが。
これってC++仕様で規定されてるのでしょうか・・・
585デフォルトの名無しさん:05/01/08 05:37:12
VC++と関係ない話題で恐縮です
586デフォルトの名無しさん:05/01/08 09:39:06
>>584
dynamic_cast以外はキャストのオーバーヘッドなんて無に等しい。
587デフォルトの名無しさん:05/01/08 10:22:26
>586
無ってどのくらい?お前の感覚なんて何の信頼性もないんだから、
定量的に表現してくれる?
588デフォルトの名無しさん:05/01/08 12:19:28
>>587
1秒以下
589デフォルトの名無しさん:05/01/08 12:41:22
非動的なキャストのコストはコンパイル時にのみ払われる。
590デフォルトの名無しさん:05/01/08 12:41:52
>>589
ポインタのって条件付きでね。
591デフォルトの名無しさん:05/01/08 13:16:31
>>588
ワロタ
592デフォルトの名無しさん:05/01/08 13:54:39
>588
1秒以下って曖昧すぎんだけど。つか、1秒を無と言ってるの?
593デフォルトの名無しさん:05/01/08 14:15:32
>>589
多重継承とかしてるとオフセット演算が入る可能性がある。
594デフォルトの名無しさん:05/01/08 14:28:09
>590
ポインタ以外のキャストってあるの?
595デフォルトの名無しさん:05/01/08 14:59:36
>>594
整数<->浮動小数点
とか
596デフォルトの名無しさん:05/01/08 15:05:38
>595
うぉー、知らなかった。
597デフォルトの名無しさん:05/01/08 15:09:19
>>596
キャストしてよかったね。
まぁ、Catch&Releaseでよろしく。
598デフォルトの名無しさん:05/01/08 15:21:59

Visual Studio .NET theSpoke Premium Version 2003 (要 学生認証 )
これって学生中だけ使えて学生卒業したら使えないってこと?買いかな?
599デフォルトの名無しさん:05/01/08 15:23:04
>598
卒業する年の12月31日までだよ。卒業するまでは使えない。
600デフォルトの名無しさん:05/01/08 15:23:28
>599
卒業する年の前年の12月31日って書かなきゃおかしいか。スマン
601デフォルトの名無しさん:05/01/08 15:23:39
>>598
マルチ
602デフォルトの名無しさん:05/01/08 15:36:55
>>598
卒業後も使えるよ。
公式ページぐらい全部読め池沼
603デフォルトの名無しさん:05/01/08 16:36:55
>>592
「1秒以下」の何が曖昧なんだか・・・
604デフォルトの名無しさん:05/01/08 16:59:02
>603
0秒も0.5秒も1秒も、みーんな1秒以下ですよ?
605デフォルトの名無しさん:05/01/08 17:03:45
>>604
1秒以下はみーんな無ですが、何か?
606デフォルトの名無しさん:05/01/08 17:06:43
>>605
釣られませんよ
607デフォルトの名無しさん:05/01/08 17:11:54
>605
まじで?単金やすそー、お前
608デフォルトの名無しさん:05/01/08 17:27:51
http://ray.sakura.ne.jp/tips/rtti.html
256×10万回で平均10053ミリ秒だそうな。
609デフォルトの名無しさん:05/01/08 22:06:20
VCのプロジェクトのフォルダにファイルをコピーすれば、そのファイルを
プロジェクトに自動で追加してくれる機能ってないですか?

プロジェクトに追加しても元のフォルダからコピーしてくれなかったり、
削除しても実ファイルは削除してくれなかったりするのが、激しく不便なんです。
610デフォルトの名無しさん:05/01/08 22:10:14
>609
気持ちは分かるがない。
611デフォルトの名無しさん:05/01/08 22:16:29
>>610
そうですか。
VC2005で追加されたりしないんでしょうか。
VCは最高のC++開発環境だって聞くので残念です。
612デフォルトの名無しさん:05/01/08 22:17:59
>611
変な日本語。ちなみに誰情報を真に受けてそんなこと
書いてんの?
613デフォルトの名無しさん:05/01/08 22:18:23
>611
また出た。「〜しないんでしょうか」男。これ全部同じ奴だよな。
614デフォルトの名無しさん:05/01/08 22:19:11
>613
こんなのが何人もいるとは思えん。他のスレのも含めて
一人の仕業だろう。
615デフォルトの名無しさん:05/01/08 22:23:28
>614
うるせー。勝手に俺様にレスするんじゃねぇ。
616デフォルトの名無しさん:05/01/08 22:36:30
「〜しないんでしょうか」男の名は俺様がもらった!
617デフォルトの名無しさん:05/01/08 22:41:06
Visual C++が現時点で最高レベルの開発環境であることは事実だろ。
それ以上なんて、思いつかん。
618デフォルトの名無しさん:05/01/09 01:46:47
CVSも統合して欲しいもんだ(´ー`)
オリジナルなんていらね
619デフォルトの名無しさん:05/01/09 01:57:02
マジレスすると、プロジェクト間で共通なソースを利用する開発スタイルで困るね。
プロジェクトに追加するだけでコピーされるからそれぞれ修正しなければならなくなるし、
逆にプロジェクトで不要になると勝手に削除されちゃうわけだし。
620デフォルトの名無しさん:05/01/09 02:18:42
>>618
VSSは使わないのでしょうか
621デフォルトの名無しさん:05/01/09 03:12:16
「〜しないんでしょうか」男
622デフォルトの名無しさん:05/01/09 03:24:13
>>621
あなたはスレを荒らしたいだけではないんでしょうか?
623デフォルトの名無しさん:05/01/09 07:37:13
>621-622
そういう意味じゃない。やっぱり全然分かってないんだな。
624デフォルトの名無しさん:05/01/09 07:38:47
>622
アホ。誰も否定疑問が全て悪いなんて言ってない。
話についてこれてないくせに書き込むするのはやめろ。
625デフォルトの名無しさん:05/01/09 07:39:24
書き込「み」するだったけど。
626デフォルトの名無しさん:05/01/09 07:41:07
VC2005で追加されたりしないんでしょうか。
VSSは使わないのでしょうか


この違いを>621に解説してもらおうかな。
当然違いは分かってるはずだよな。(分かってないんだろうけどw)
627デフォルトの名無しさん:05/01/09 09:42:09
しないんでしょうかを見ると、全て同一人物に見えるなんて
精神病の一歩手前だな。
628デフォルトの名無しさん:05/01/09 09:52:08
>627
ちなみに誰のこと?
629628:05/01/09 09:52:58
>621や>622のことであれば回答不要です。
630デフォルトの名無しさん:05/01/09 12:57:44
>>629
違うのではないでしょうか。
631デフォルトの名無しさん:05/01/09 13:09:50
>630
で?
632デフォルトの名無しさん:05/01/09 16:04:54
マジレスすると>>613-614のことじゃないかと。
633デフォルトの名無しさん:05/01/09 16:15:36
円周率πの値を計算するモンテカルロシミュレーションのプログラムが分かる
人是非教えてください。お願いします。
634デフォルトの名無しさん:05/01/09 16:22:57
>>633
そのアルゴリズムならぐぐれば詳しく解説してるところが出てくるぞ。
635デフォルトの名無しさん:05/01/09 16:43:33
マルチは(・∀・)カエレ!!
ぼるじょあスレに答え出てるだろうが
636デフォルトの名無しさん:05/01/09 17:49:15
結局は626が一番のキティということで
637デフォルトの名無しさん:05/01/09 18:18:00
>636
え?まさかあの2つの文章の違いが分からないの?
信じられん・・・・


結局は636が一番のキティであると告白しました。
解決。終わり。
638デフォルトの名無しさん:05/01/10 04:55:39
どうも条件が良く解らんのですが、クラスやテンプレートの関係によって
IntelliSense動作時にIDE全体を引き込んでフリーズしてしまうことがあります。
CPU負荷が100%になって、コミットチャージがどんどん増える(簡単に1G超える)
回避方法無いもんですかね?

どうもKB833772に描かれてる症状にそっくりなんですが
別段、長い名前空間なんて使用してませんが…むしろ短い
ウチはC++で使ってまして自動メンバ表示・パラメータヒント・
自動クイックヒント切っても発生するし…

これのFIX有料サポートじゃないと貰えんのですかね?
639638:05/01/10 04:57:21
あ、上のはVisualStudio.NET 2003の問題です…
640デフォルトの名無しさん:05/01/10 08:45:05
ここはサポートセンターじゃない
641デフォルトの名無しさん:05/01/10 08:51:01
561 :デフォルトの名無しさん :05/01/07 04:05:19
こちらのスレに誘導されてきました。
VC++6.0を使用しています。
コーディングしているとたまに、全く反応が無くフリーズしたような状態になります。
フリーズ時間は数十秒〜1分くらいで、発生頻度は一定していません。
全く出ないときもありますし、30秒に1回くらいのペースで発生するときもあります。
自動保存にしては頻度が高すぎます。
フリーズするのはVCだけで、他のソフトは普通に操作できます。
CPU負荷にも変化は無いので、CPU100%で重くなっているというわけではないようです。

OSはWinXP SP2ですがSP1の頃からずっと発生していました。
642デフォルトの名無しさん:05/01/10 09:13:39
>640
当たり前じゃん。お前らごときをサポセンと思うわけないでしょ。
643デフォルトの名無しさん:05/01/10 11:06:08
>>642
高い金払ってるんだからMSに訊けって事だと思う。
644デフォルトの名無しさん:05/01/10 11:17:13
お前ら自分が好きで回答してるくせに、文句が多いんだよ。
誰もお前らに頼んでねーだろが。
645デフォルトの名無しさん:05/01/10 11:56:08
    どこまで行クマ?
\   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
  \(⌒-⌒)   o       (´⌒(´
   (・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
          ̄ ̄     (´⌒(´⌒;;
      ズザーーーーーッ
646デフォルトの名無しさん:05/01/10 19:41:55
>>641
これはみたけど明らかに症状違いますね
638の症状ではフリーズしたら永久に復帰しないし、
CPUは100%を維持、時間と共にメモリを消費
(そのうちスワップも溢れてOSレベルの警告が出る)
あきらかに発生原因はIntelliSense動作時の特定の
クラスorテンプレート参照時に限られる
こんな感じです。6.0では発生したことは一度たりとも無いです
テンプレート多用してる時によく起こる気がする。
647デフォルトの名無しさん:05/01/10 20:29:07
循環参照してたりしないよねぇ。
648デフォルトの名無しさん:05/01/10 20:30:27
一度インテリセンスデータベースを消してみたら?
.ncbファイル
649デフォルトの名無しさん:05/01/10 22:38:03
現在C言語やってる者です。
GUIアプリ(専用のウィンドウで)を作るにはどうすればいいんですか?
MSDOSでしか実行できなくて・・・・
分かる人教えて下さい。
650デフォルトの名無しさん:05/01/10 22:39:16
>>649
WinAPIを使う。
651デフォルトの名無しさん:05/01/10 22:40:19
>>649
ここのWindowsSDK編つーやつ見ると参考になるかも
http://www.kumei.ne.jp/c_lang/
652デフォルトの名無しさん:05/01/10 22:50:19
俺はこっちをすすめる。
http://wisdom.sakura.ne.jp/system/winapi/win32/
653649:05/01/10 23:01:17
>>650-652
ありがとうございます^^
いろいろと試してみます。

あと、やっぱりVisual C++とかって必要なんですか?
持ってないんですよね・・・
654デフォルトの名無しさん:05/01/10 23:03:53
>>653
WinAPIだけならいらない。
655649:05/01/10 23:17:48
すいませんWinAPIって何ですか?
これも言語なんですか?
656デフォルトの名無しさん:05/01/10 23:22:39
>>655
Windowsが用意している関数群。
C言語でのWinのソフトの開発はこれを使ってやる。

それと言っておくけど本気でやるつもりならちゃんとした本は買った方がいいと思うよ。
さっきの猫のページの所の人が書いてるのは中々良かったよ。
あとVC++もあったほうがいいかもしれない…
657649:05/01/10 23:38:40
>>656
はい。本は近々買おうと思っています。
お勧めの本とかありますか?
質問ばかりすいません。

VC++も必要なんですか〜
最初の内はフリーのコンパイラを探してやってみます。
658デフォルトの名無しさん:05/01/10 23:52:38
さんざん言われてることだけど、
今はVisualC++ 2005 Express(英語版)が無料で手にはいるから
そこから入ってみるのもいいかも。

英語が苦手ならBCC+BCCDeveloperやDevC++を使うのが楽
(後は本買って日本語βを手に入れるか)
659656:05/01/10 23:53:37
>>657
頼むから俺のレスをちゃんと読んでくれ…
http://www.kumei.ne.jp/c_lang/bookinfo/info.htm
660デフォルトの名無しさん:05/01/10 23:57:12
>>659
鮮やかな宣伝だな。

30 名前:過去スレpart14の793より[sage] 投稿日:04/11/27(土) 23:34:40
> Win32APIを使うなら
>
> Visual C++(1)はじめてのWindowsプログラミング 翔泳社
> ↓
> Windows 2000プログラミング標準講座 翔泳社
> ↓
> プログラミングWindows 第5版(上)(下) アスキー
>
661デフォルトの名無しさん:05/01/10 23:59:25
>>660
俺は自分が読んでよかった物を書いただけだろうが。
それを宣伝だの何なの言われる筋合いは無い。
662デフォルトの名無しさん:05/01/11 00:40:20
C言語なら〜にも質問させていただいたのですが、
libjpeg.libをIJGからソースをダウンロードして作成したまでは
良かったのですが、使用する側のソースでこのlibjpeg.libを用いて
ビルドすると、再定義エラーが多く出力されてしまいました。
HPをめぐって、libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
のライブラリを無視することでそのエラーは対処できたのですが、
gil error LNK2001: 外部シンボル ""void __cdecl operator delete(void *)" (??3@YAXPAX@Z)" は未解決です。
gil error LNK2001: 外部シンボル ""void __cdecl operator delete(void *)" (??3@YAXPAX@Z)" は未解決です。
gil error LNK2001: 外部シンボル ""void __cdecl operator delete(void *)" (??3@YAXPAX@Z)" は未解決です。
gil error LNK2001: 外部シンボル "__DllMainCRTStartup@12" は未解決です。
gil error LNK2001: 外部シンボル "__load_config_used" は未解決です。
gil error LNK2001: 外部シンボル "__purecall" は未解決です。
とのエラーが出てしまい、どうしても解決できません。
どなたか対処方法をご存知な方がいらっしゃいましたら、お教えください。
環境は、VC++.net DLL作成プロジェクト VC++で作成しています。
663デフォルトの名無しさん:05/01/11 00:57:20
ttp://jp.thespoke.net/MessageBoard/MessageBoard_ViewThread.aspx?postid=486

あの似顔絵ウィザードも含めて、HomeStyle+ って
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.NET Framework で書かれてるんですね。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
逆アセンブルしてみたら気づきました・・・・。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ああいうのを作品に組み込むのも面白いかも(笑)

MSの製品を逆汗するような奴をMSはMVPに選んでいるんです。MSは逆汗を認めていると
664デフォルトの名無しさん:05/01/11 00:58:36
>>662
libc.libとの競合が起きてたのか?

ライブラリの無視を試す前に
プロジェクトの設定→C/C++→コード生成→ランタイムライブラリ
を、「マルチスレッドDLL」にして試してみれば?
665デフォルトの名無しさん:05/01/11 00:58:46
theSpokeスレの誤爆かしらんがいい加減しつこい。
文句があるならMSに直接言えよ。
666デフォルトの名無しさん:05/01/11 01:08:10
>664さん
レスありがとうございます。マルチスレッドDLLにして、
ライブラリは全部無視しない場合、

error LNK2019: 未解決の外部シンボル _jpeg_CreateDecompress が関数 "public: virtual int __thiscall TJPG::Read(char const *)" (?Read@TJPG@@UAEHPBD@Z) で参照されました。

とのエラーが出てしまい、相変わらずリンカエラーにより先に進むことができません。
引き続きご教授願えれば幸いです。
667デフォルトの名無しさん:05/01/11 01:15:05
>>662
デバッグ用ライブラリとリリース用ライブラリは混在できない。
libjpeg.libのプロジェクトの設定をよく見てみ。
668デフォルトの名無しさん:05/01/11 01:31:11
>667さん
御指摘ありがとうございます。
libjpeg.libの設定はreleaseです。もちろんDLL側の
プロジェクトもreleaseで作ってますが同じ状況です。
情けない話ですが、DLL側の設定が悪いのか、
libjpeg.lib側の設定が悪いのかそこさえも分からない状況です。
669デフォルトの名無しさん:05/01/11 01:35:08
extern "C"つけた?
670662:05/01/11 01:37:38
libjpeg.lib側はCコードとして作成しました。
DLL側では、
extern "C"
{
#include "jinclude.h"
#include "jpeglib.h"
}
のようにしてます。
671デフォルトの名無しさん:05/01/11 05:24:26
もしiが12で割り切れるならこの処理をするっていうのは
if(i%12){
}
でいいんですか?

672デフォルトの名無しさん:05/01/11 06:28:58
>>671
それはCだろ
Cスレ逝け
673デフォルトの名無しさん:05/01/11 06:33:00
>libjpeg.libをIJGからソースをダウンロードして作成したまでは
>良かったのですが、

作ったやつに聞けよ
674デフォルトの名無しさん:05/01/11 06:33:44
>>671
逆。
if(!(i%12))
675デフォルトの名無しさん:05/01/11 08:36:23
>668
DLL関数輸入時に必要な
__declspec(import)
というのをヘッダから探してみな。
676デフォルトの名無しさん:05/01/11 09:32:54
>675さん
ご意見ありがとうございます。
このIJGライブラリは静的ライブラリとして使いたいので、
__declspecは
#define GLOBAL(type)type
#define EXTERN(type)extern type
として宣言されていると思うのですが、
コレを仮に
#define GLOBAL(type) __declspec(export) type
#define EXTERN(type) extern __declspec(export) type
としてもダメでした。もはやお手上げ状態です。
677デフォルトの名無しさん:05/01/11 09:38:00
>>676
スレ汚すな
678デフォルトの名無しさん:05/01/11 11:21:11
>676
__declspecを調べて来い
679662:05/01/11 15:35:31
ご意見を頂いた皆様。
libjpeg.libのリンカエラーの問題は解決しました。
原因ははっきりとは分かりませんが、nmakeしなおした
libjpeg.libを使ったところ問題なくリンクできました。
お騒がせして申し訳ありませんでした。
ご意見を頂いた皆様に深い感謝を申し上げます。
680デフォルトの名無しさん:05/01/11 15:51:04
スレ間違えてしまいました 

VC++なんですが、リストビューの要素の
編集をしたいのです
ダブルクリックすると、編集可能になるお手本の
とおりにやりたいのですが、どういう手段を使えばいいのでしょうか

// ダブルクリック反応用
m_listctrl.SetExtendedStyle(LVS_EX_TWOCLICKACTIVATE);
i = m_listctrl.GetHotItem();

これだと、一番左の行の場合しかiに値が入らず、編集もできないです
リストビューのどこのカラムでもダブルクリックで編集できるような方法を教えてください


681デフォルトの名無しさん:05/01/11 16:12:04
>680
リストビューにスタイル設定して通知メッセージを聞けば楽勝
682680:05/01/11 16:31:38
>>681
ダイアログとして作成して別に
たくさんボタンとかテキストボックスをくっつけている状態で
スタイル設定はできるのでしょうか?
683デフォルトの名無しさん:05/01/11 16:37:00
>682
やってみろ
684デフォルトの名無しさん:05/01/11 16:43:21
>>680
リストビューは一番左(ラベル)しか編集できない
エクスプローラでファイル名しか編集できないのと同じ
685680:05/01/11 16:46:35
>>684
えっ 無理なんですか?
えー いろいろやってたんだけど
そうなるとコントロール変えないといけないな
686680:05/01/11 17:21:31
たびたびすみません
リストビューなんとか使いたいもので。

CListCtrl &lc= GetListCtrl();
をコンパイルすると、 'GetListCtrl' : 定義されていない識別子です。
と出てしまうのですが、何が足らないのでしょうか?

いろいりおググッて見たんですが、具体的に書いているところが見つからないです
すみません
687デフォルトの名無しさん:05/01/11 17:22:26
afxcview.h
688デフォルトの名無しさん:05/01/11 17:31:45
メンバ関数なんだろ
689680:05/01/11 17:32:56
>>687
即答ありがとうございます
include 確かに抜けていたので、追加したんですが、
リビルドしても同じエラーがでてしまいます

include 以外に追加する場所ってないですよね?
stdafx.h に #include <afxcview.h>として
追加したんですが
690デフォルトの名無しさん:05/01/11 18:29:13
メンバ関数だろ
691680:05/01/11 18:46:01
>>688
>>690
すみません メンバ関数ってどういうことでしょうか?
結局うまくいかないみたいで、メンバ変数にしているわけでも
ないのですが・・・

関数として、新たにクラス作成するということでしょうか?
692デフォルトの名無しさん:05/01/11 18:49:38
GetListCtrlは何のメソッドですか?
693680:05/01/11 18:55:27
694649:05/01/11 19:21:41
windowsAPIとSDKは別物ですか?
また、winAPIで作ったウィンドウでC言語のプログラム(いままでMSDOSで動かして奴)を動かしたいのですが、どうやればいいのでしょうか?
695デフォルトの名無しさん:05/01/11 19:32:55
>649
新プロセス作ってその入出力を2つのパイプでつないで、パイプの端を読み書きして、パイプから出てきたヤツをEDITかLISTBOXに吐き出せ。CreateProcess,CreatePipe,ReadFile,Writefileを見よ。BCCFormにてきとーな例がある。
696デフォルトの名無しさん:05/01/11 19:37:12
winapiはWinアプリが動く仕組み。Platform SDKはM$が提供するサンプルとヘッダなどが付いた開発キット。Javaの開発キットと似たようなもん
697デフォルトの名無しさん:05/01/11 19:45:50
>>695-696
どうもです^^
そのプロセスのことについて書いてあるサイトないですか?
698649:05/01/11 19:56:19
どのサイトもWINAPIの説明はウィンドウやダイアログボックスを作るまでしか説明がない・・・・
ウィンドウを作ってそこでD言語のプログラムを動かす説明がないよ〜
699デフォルトの名無しさん:05/01/11 19:56:52
>697
被告人は取材元守秘のため黙秘する!
700デフォルトの名無しさん:05/01/11 20:04:25
>>695
そんなもんDOS窓で実行するのと大差ないだろ
701デフォルトの名無しさん:05/01/11 20:08:01
>>698
そんなあんたにはPWP
702デフォルトの名無しさん:05/01/11 20:11:32
>700
コンソール低レベルAPIにも制限がある。別プロセス起動したDOS窓にダブルクリックしたらぶっ飛ぶ機能を付けるのは危険。
703デフォルトの名無しさん:05/01/11 20:15:50
>>698
大体DOSプログラムを知らないことを前提にしているからな。
704デフォルトの名無しさん:05/01/11 20:23:08
>>702
だったら全部作り直しだな
DOSしか知らないやつが、みかけだけWinのはりぼて作ろうとしてるんだろ
705デフォルトの名無しさん:05/01/11 20:23:25
MFC(SDI)のとき、ocxとか使うのってどうやるのでしょうか?
706705:05/01/11 20:28:14
ocxを貼ることができるのはダイアログのみですか?
使いたいのはグラフィカルなocxじゃないんで
ダイアログが必要ないんです。
707デフォルトの名無しさん:05/01/11 20:56:15
VCあんまり知らなくてもいい話題だと急に人が増えるけど
肝心なことになるとぱたっと人がいなくなるのが不思議
708デフォルトの名無しさん:05/01/11 21:01:07
俺は魚じゃないんだ
709デフォルトの名無しさん:05/01/12 00:04:19
リストビューで任意のセルを編集したい。
→諦めてVC6ならMSFlexGrid、VC7ならそれもないのでExcelでも使う。
→CodeGuruで同好の士の業物を拾って自分でなんとかする。

私は前者も後者もやったが、後者はなかなかメッセージの振る舞いが楽しかった。
#検索用キーワード:edit_subitem, subedit, ListViewCtrlEx, ReportCtrl
710デフォルトの名無しさん:05/01/12 05:30:12
亀レスすみません

>>647
そもそもそういう状態でコンパイル通るのでしょうか?
問題のクラス自体は正常に動作していますが…

>>648
情報どうもです。消してみましたがヤハリ落ちる…

どうもテンプレートを使用したスマートポインタモドキを多用してるのですが
それが絡むとまずい様です。スマートポインタオブジェクトから->演算子の
オーバーロードを経てメソッドにアクセスしているんですがどうもそこの
部分でIntelliSenseが動作すると落ちるようです。

…と思ったらSTLのauto_ptrのoperator->の記述のまねして
自分のテンプレート書き換えてみたら落ちなくなりました…理屈は良く解りませんが。
711デフォルトの名無しさん:05/01/12 05:50:02
と思ったらやっぱり落ちる。入力時のIntelliSenseのメンバ候補では落ちなくなったが
マウスホバーででるパラメータ・クイックヒントでIDEごとあぼーん

もうこれは切っとくしかないか…orz
712638-639,646,710-711:05/01/12 07:14:49
だいたい原因わかりますた。

プロジェクトに組み込んでたDirectX9SDKのサンプルフレームワークが
#define V(x) ... というようなマクロを組み込んでいたのが原因のようです
ここで関数やテンプレートの引数にVを使うとコンパイラは
#define V(x) ... と #define V ... の区別をつけるから問題なくコンパイルできるけど、
それをIntelliSenseが混同して引数Vと#define V(x)を関連付けて考えているようで、
そこでIntelliSenseの処理が破綻していたようです。

名前変えて回避したらウソのように直りました。レス頂いた方ありがとうございました
713デフォルトの名無しさん:05/01/12 10:20:58
日記はチラシの裏へ
714デフォルトの名無しさん:05/01/12 11:04:31
最近のチラシは両面印刷されてるからなぁ
715デフォルトの名無しさん:05/01/12 14:40:43
パチンコとかなら片面印刷が多いぞ
716デフォルトの名無しさん:05/01/12 15:13:00
表面ツルツルしてるから鉛筆だと書き難いんだけど・・・
717デフォルトの名無しさん:05/01/12 15:23:46
718デフォルトの名無しさん:05/01/12 21:49:33
ボールペン使えよ
なければ人差し指に針刺して血で書けよ
719デフォルトの名無しさん:05/01/13 01:45:14
('A`)新聞取ってなくてスイマセン
720デフォルトの名無しさん:05/01/13 14:55:26
VC++6.0 Pro SP5 を使っています。

プロジェクト - 設定 の中に、リンク前やビルド後に何らかの処理を行わせる機能がありますが、
逆に、ビルド前(というかコンパイル前)に処理をさせることは可能でしょうか?
また、可能だとしたらどのように設定するべきでしょうか?

どうか諸兄の知恵をお貸しください。
721デフォルトの名無しさん:05/01/13 16:27:16
このスレ基地外に好かれるな
また変な香具師きたぞ
722デフォルトの名無しさん:05/01/13 16:30:47
>>721
>721
723デフォルトの名無しさん:05/01/15 19:44:06
Visual C++ 2003の体験版で、http://www.kumei.ne.jp/c_lang/index_sdk.html のイントロダクションのプログラムを作ろうとしたのですが、でエラーが出て出来ませんでした。
なにか設定が必要なのでしょうか?
724デフォルトの名無しさん:05/01/15 19:46:43
エスパー伊藤さん出番ですよ
725デフォルトの名無しさん:05/01/15 19:59:19
>>723
どんなエラーが出たの?
726723:05/01/15 20:04:40
そのイントロダクションのプログラムをビルドすると下のようなエラーが出ます。

c:\〜.cpp(22) : error C2440: '=' : 'HGDIOBJ' から 'HBRUSH' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
c:\〜.cpp(45) : warning C4244: 'return' : 'WPARAM' から 'int' に変換しました。データが失われているかもしれません。
727デフォルトの名無しさん:05/01/15 20:36:30
>>726
http://www.kumei.ne.jp/c_lang/setvc.htm
ここの蛇足を読め。
728デフォルトの名無しさん:05/01/15 21:14:20
質問とは全然関係ないけど
http://www.kumei.ne.jp/c_lang/netinteli.htm

[C++]
.ncb ファイルに問題がある場合

プロジェクト ディレクトリのルートにある .ncb ファイルが読み取り専用であるか
破損している場合、IntelliSense の情報は使用できません。この問題を修復するには、
次の処理を行います。

ソリューションを閉じます。
.ncb ファイルを削除します。
再びソリューションを開きます。
再びソリューションを開くと、.ncb ファイルが新規作成されます。
729デフォルトの名無しさん:05/01/16 02:29:39
>>724 お答えします
×伊藤
○伊東
730デフォルトの名無しさん:05/01/16 06:32:47
ソースを見ていたら

hThread = CreateThread( 0, 0, (LPTHREAD_START_ROUTINE)countThread,
        (VOID *)countTimes, 0, &threadID ) ;  ・・・・・(1)

という部分があり、LPTHREAD_START_ROUTINEの定義を見ると

typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(
LPVOID lpThreadParameter
);
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;

となっていました。
力不足でプリプロセッサを通したあとの状態を読み取れないんですが
(1)のソースはどう置換されるのでしょう?
LPTHREAD_START_ROUTINEがどういうものかわかりません。エスパー助けて!
731デフォルトの名無しさん:05/01/16 07:52:54
プリプロセッサ…?
LPTHREAD_START_ROUTINEは
返値の型がDWORD、引数がLPVOIDの関数へのポインタだろ。
ユーザ定義のコールバック関数
732デフォルトの名無しさん:05/01/16 12:30:37
プロパティウインドウの中身が一切表示されなくなったんだけど
同じような症状になった人いますか?
733デフォルトの名無しさん:05/01/16 13:48:21
プロパティウインドウと言ってもいろいろあるわけだが
734デフォルトの名無しさん:05/01/16 14:33:39
プロトタイプ宣言をつい忘れてしまうのですが
チェック&自動生成してくれるような方法ないですか?
735デフォルトの名無しさん:05/01/16 14:46:08
int a[] = {0, 1, 2, 3, 4} ;
これと同じ意味の配列の宣言の仕方はどんなのがありますか?
736デフォルトの名無しさん:05/01/16 15:03:48
>>734
チェックはコンパイラにしてもらえ。
自動生成はそういうマクロでも作ればよかろう。

>>735
int a[5] = {0, 1, 2, 3, 4};
つーか、どんなのがいいの?
737デフォルトの名無しさん:05/01/16 15:40:41
プログラミングいろいろ覚えたら、どんな楽しい事ができるようになるの?

738デフォルトの名無しさん:05/01/16 17:33:15
>734
cproto
>735
標準Cで別の方法はない。GCC拡張ならあるが、使わない方がいい。PerlやRubyでコードを吐けば簡単
739デフォルトの名無しさん:05/01/16 17:55:04
>>738
GCC拡張から遂にC標準へ……。

                   C99
740デフォルトの名無しさん:05/01/16 18:19:30
ウィンドウハンドルの変数を全部グローバルで宣言してるけど別に問題ないですよね?
741デフォルトの名無しさん:05/01/16 18:32:55
>740
大局変数にする場合でも数が増えたら、後で困らないよう機能ごとにまとめておくんだな
742デフォルトの名無しさん:05/01/16 18:47:29
はじめましてVisualC++6.0を使いはじめたのですが、行数を表示することはできますか?
できるならやり方を教えてください。宜しくお願いします。
あとVisualC++6.0とVisual C++.NET 2003ではVisual C++.NET 2003の方が使い安さと機能は上でしょうか?
743デフォルトの名無しさん:05/01/16 18:56:08
>742
ファイルを一行ずつ読み込んで数えろ。
確かに上だが、購入計画を立て、商品の情報は自分で調べろ。後で泣いてもしらん。
744デフォルトの名無しさん:05/01/16 18:58:11
>>742
6.0はコンパイルの時にデフォルトワークスペースとプロジェクトを自動生成してくれるけど.NETは一々プロジェクトを立ち上げないといけない。
もし「C++ファイルを書く」→「ビルド」の流れにどっぷり浸かってるなら最初の内は苦労する。

あと、やっぱり4年も離れてるから必要環境が高すぎ。
1.5G以上のCPUじゃないとお勧めできないね。
745デフォルトの名無しさん:05/01/16 19:00:49
質問に答えてる奴は命令口調やめろボケ


お前等のことだぞ低脳>>741,>>743
746デフォルトの名無しさん:05/01/16 19:09:41
>745
世の中と上司の厳しさも伝えてやったんだ、有り難く思え。
747デフォルトの名無しさん:05/01/16 19:18:57
Visual C++ 6.0を使っているんですが、
新規作成のときにプロジェクトの種類がいっぱいあるんですが、
どれが一番使いやすいんでしょうか?
ネットで調べてみたら、
Win32 ApplicationかMFC AppWizardを使っているところが多いんですが……。
748デフォルトの名無しさん:05/01/16 19:28:22
>>747
ファイルがcpp一個だけならプロジェクト作らずにそのまま書けばビルドできるよ。
というかWin32とMFCはプログラムの作り方が別物だからサイトに合わせて使い分ければ良い。
749デフォルトの名無しさん:05/01/16 19:31:15
>747
使いやすさは断然MFC。オブジェクト指向の利点が詰まっている。MFCなら自然にwinapiも学べるし。
750デフォルトの名無しさん:05/01/16 19:32:45
SMTPプロトコルで送信だけでなく受信もできるというプログラムを作成したいのですが,
Win32APIとかを探しても見当たらないような気がしたのですが,それ以外でも
いいのでそういうのはあるのでしょうか?
JavaにはApache Jamesがあるようなのですが.
751裕美子(一応女子大生):05/01/16 19:34:09
>>747
あなたのプログラミング能力と目的で決まります。

Win32APIをじっくりと弄りながらアプリケーションを作り上げるのなら
「Win32 Application」を選びます。

C++のクラスの機能を弄りながらアプリケーションを作り上げるのなら
「MFC AppWizard」を選びます。

単にC/C++の学習をするのなら「Win32 Console Application」を
選んでください。
752裕美子(一応女子大生):05/01/16 19:48:55
>>742
残念ながら、VC++6.0には行数表示機能がないみたいです。

VC++6.0とVC++.NET2003は、当然後発の方が機能が上です。
コンパイラの性能もMFCの機能も高機能になっているみたいです。
(初心者の私にはほとんど違いが分かりません。というか違いが分かる
アプリケーションを作ることができません。)

ただ、IDEの操作体系がかなり変わっています。これは「慣れ」の
問題です。(私はVC++6.0の方が好きです。シンプルで)
753貞子(一応幼稚園児):05/01/16 19:53:17
754デフォルトの名無しさん:05/01/16 20:42:58
WndProc関数でメッセージの処理を行うのですけど
もし扱うメッセージが1000種類あるときどうすればいいでしょうか?
まさかSwitch〜caseなんてことは・・・
755デフォルトの名無しさん:05/01/16 20:50:34
>>754
メッセージクラッカーを使ったり、MFCとかWTLとかそういうクラスライブラリを使ったり。
756747:05/01/16 20:53:09
返信ありがとうございました。
MFC AppWizardのほうをやってみようと思います。
757デフォルトの名無しさん:05/01/16 21:20:07
IDEってなんですか?
758デフォルトの名無しさん:05/01/16 21:23:19
759デフォルトの名無しさん:05/01/16 21:37:31
俺のVC6は行番号出でてる
760デフォルトの名無しさん:05/01/16 21:54:52
>>754
どうやるの?
761デフォルトの名無しさん:05/01/16 21:56:01
間違えです。
>>759
どうやるの?
762デフォルトの名無しさん:05/01/16 21:58:31
間違えではなく間違いです。
763デフォルトの名無しさん:05/01/16 22:03:45
.NET2003の話だけど
[ツール]→[オプション]→[テキストエディタ]→[C/C++(VSだから)]→[全般]→[表示]→[行番号]
でできるぞ。
まさか6.0だからってテキストエディタの設定が無いわけ無いし。
764裕美子(一応女子大生):05/01/16 22:11:30
VC++6.0Proを持っていますが
「ツール」→「オプション」でエディタ関係のダイアログを開いてみます。

「エディタ」「タブ」「互換性」「書式」とコーディングに関係するタブ部分を
全て見ても、行番号表示に関するものが見あたりません。

他に設定関係のメニューが見あたらないのですが・・・。
765デフォルトの名無しさん:05/01/16 22:35:30
こんばんわ

自作のアプリケーションを作ったのですが、
ほかの人のパソコンで起動したところ、「MFC71.DLLがありません」とエラーが出ました。

埋め込みDLLをすればイイと聞いたのですが、
VS内でどのようにすればいいのでしょうか?

宜しくお願いします。
766裕美子(一応女子大生):05/01/16 22:50:10
「新しいプロジェクト」→「MFCアプリケーション」を選択します。
プロジェクト名を記入したら「MFCアプリケーションウィザード」が起動しますので、
ウインドウの左側にある「アプリケーションの種類」をクリックして選択し、
「スタティックライブラリでMFCを利用する」というラジオボタンをクリックして
選択してください。これで必要なMFC関係のDLLが自作アプリに埋め込まれるはずです。
767765:05/01/16 23:35:50
>>766
ご返答ありがとうございます。

すでにつくってあるプロジェクトで、そのような変更はできるのでしょうか?
768デフォルトの名無しさん:05/01/16 23:46:35
"プロジェクトの設定"で切り替えればいいんでないか?
試してないからわかんないけど。
769765:05/01/16 23:59:37
これでいいんでしょうか?
http://www.geocities.jp/ayana_city/static.JPG
770デフォルトの名無しさん:05/01/17 00:14:17
試せば判る
771デフォルトの名無しさん:05/01/17 00:37:47
検索ヒットした単語を色を変えて表示するのって出来ますか?
772デフォルトの名無しさん:05/01/17 01:01:18
>>764-767
最近伸び悩んでるスレを伸ばすための自演だよな?
773 :05/01/17 01:02:59
>>もし扱うメッセージが1000種類あるときどうすればいいでしょうか?
こんなプログラムは存在するのか
とふと思った
774デフォルトの名無しさん:05/01/17 01:03:10
__declspec(selectany)等の拡張属性がどのVC++のバージョンからサポートされているかの情報を探してます。
知ってる方いませんか?
775デフォルトの名無しさん:05/01/17 01:15:22
古い Visual C++ 6.0 を Windows XP にインストールしたのですが、
コンパイルの段階で printf や scanf が「定義されていない識別子です」と
エラーが出てしまいコンパイルできません。
どうすれば良いのでしょうか?
Visual C++ は製品バージョンが 6.00.9782.0 です。
Windows XP は SP2 です。
776デフォルトの名無しさん:05/01/17 01:20:52
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    | .__  そんな糞PC
     |        |        |   | |\_\  窓から
     |        | ∧_∧ |   | |  |.◎.| 投げ捨てろ
     |        |( ´∀`)つ ミ | |  |.: |
     |        |/ ⊃  ノ |   | .\|.≡.|
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |    ̄
777デフォルトの名無しさん:05/01/17 01:27:23
#include <stdio.h>
778730:05/01/17 02:14:10
>>731
ありがd。
typedefが単なるテキストマクロ展開だとごっつい勘違いしてた。
779デフォルトの名無しさん:05/01/17 07:18:22
int Kansuu(int zero, int one, int two
int three, int fore, int five)

VC6なんですけど、上のみたいに、関数のコンマを忘れると、
ビルドの時にエラー箇所を出してくれると思っていた所、
プログラムが止まってガクブルなんですけど、
設定みたいなので変えられないのでしょうか。
780デフォルトの名無しさん:05/01/17 07:41:26
  ∧_∧
 ( ´∀`)   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (    ) < コンマ?
 | | |  \_______
 (__)_)
781デフォルトの名無しさん:05/01/17 07:45:05
>779の仕事を変えるか、二億円払ってそれを自動修正するプログラムを買う
782779:05/01/17 07:56:00
>>780
カンマでしたっけ?

>>781
私はバイトでたまにやるぐらいです。
引数の部分が他の関数と似ている場合、コピーしてもってくるのですが、
その時,を付け忘れてしまいました。逆に,が2つ連続してしまう場合もあります。
同じ行なら、エラー箇所を出してくれるようですが、行が違うとダメなようです。
783デフォルトの名無しさん:05/01/17 09:14:42
んなこたーない。
784775:05/01/17 09:29:00
>>777
できました。ありがとうございます。
やっぱりちゃんと勉強しないと駄目ですね。

ついでに質問ですが、この古いVCをインストールする際に
「Windows NTシステム dllのシンボルファイル(dbg)」を
インストールしろと言われたんですが、インストールしようと
してもファイルのバージョンが違うと言われてできません。
無視するとデバグできないぞみたいなことを言ってくるので
何とかしたいのですが、どうすれば良いでしょうか。

先程の件はこのせいだと思っていたのですが、全く見当違い
だったようですね。
785デフォルトの名無しさん:05/01/17 09:40:08
>>784
OSのデバッグに必要なもので、自分のプログラムのデバッグには必要ない。
786デフォルトの名無しさん:05/01/17 09:54:23
Visual Studio 7 つかってんだが,
タブの幅を一定にできないかな?

幅がまちまちだと使いにくくてしょうがない.

タブ機能がある Web ブラウザやテキストエディタなら
たいがい幅を一定に設定できるよな
787デフォルトの名無しさん:05/01/17 10:06:01
>>786
パソコン初心者ですか?
788デフォルトの名無しさん:05/01/17 10:10:30
エディットで入力を数字と.に制限するにはどーすればいいのでしょうか?
ES_NUMBERにすると.が入力出来なくてorz

ご教授お願いします。
789デフォルトの名無しさん:05/01/17 10:16:42
>>787
おまえがな
790デフォルトの名無しさん:05/01/17 10:38:38
>>789
いや、おまえもな
791デフォルトの名無しさん:05/01/17 14:40:27
>>788
サブクラス化してWM_CHARで(isdigit(wParam) || wParam == '.')のときだけCallWindowProcを呼ぶ。
792784:05/01/17 14:43:49
>>785
ありがとうございます。安心しました。
793デフォルトの名無しさん:05/01/17 16:29:50
>>786>>789
アフォか、タブの幅が一定じゃなくなるわけ無いだろ。
794デフォルトの名無しさん:05/01/17 16:53:01
プロポーショナルフォントにしてるのだと予想
795デフォルトの名無しさん:05/01/17 18:08:04
完璧なパソコン初心者
796デフォルトの名無しさん:05/01/17 19:29:08 ,
C++とVB.NETと混在して一つのプロジェクトとかで扱えますか?
797デフォルトの名無しさん:05/01/17 19:39:37 ,
.netそりゅーしょん
798デフォルトの名無しさん:05/01/17 21:35:27
>797
たとえばC#のプロジェクトとVbのプロジェクトをつくって
Form1.cs とForm1.vbをつくってtextBox1をはりつけたら
C#からどうやってVBのtextBox1にどうやってアクセスするの?
参照できないんですけど。
799デフォルトの名無しさん:05/01/17 22:39:00
出来るよ
800800ゲットだぜー:05/01/17 23:36:42
801798:05/01/18 02:13:29
またー焦らすなよ。
「君たち」とかけけて「供ができなくなる。」ととく。
そのこころは。
802798:05/01/18 06:13:02
あっ、「子供ができなくなる」だった。
で、そのこころは「たちががわるい。」
803デフォルトの名無しさん:05/01/18 07:53:56
>>798
Win APIレベルでWin2.0A当時からできることができないわけないだろ。

>参照できないんですけど。
勉強不足なんですけど。
804798:05/01/18 10:11:55
>803
あなたの場合少しだけ朝立ちしてます。もう少し立つといいかとおもいます。
知ってて答えられないなら、金玉が小さいわけですから、わかりますか?
では次の質問にこたえてください。

 色いろ触っているうちに、コンポーネントは参照できることがわかった。
Windowsのフォームはだめー。なんで?


>勉強不足なんですけど。
だから、今勉強してるっツーの。不足してなかったらしませんつーの。
805デフォルトの名無しさん:05/01/18 19:52:39
「ビルドエラーが発生しました。」っていう
メッセージボックスを表示しないようにできないでしょうか?
非常にわずらわしいです。
806デフォルトの名無しさん:05/01/18 20:03:32
ごめん。ビルドすれば表示されないんだった。
今まで気づかなかった。
いつも「デバッグなしで開始」してたから。。。
807デフォルトの名無しさん:05/01/18 23:17:41
wavファイルを取り込んでフーリエ変換したりするプログラムを作りたいのですが、
肝心のwavファイルのフォーマットや扱うための関数群が分かりません。
参考になるサイトなどを紹介してもらえないでしょうか
808デフォルトの名無しさん:05/01/18 23:55:35
809デフォルトの名無しさん:05/01/19 00:59:50
Windowsプログラミングを始めるならWin32API,MFC,C#のどれから入るべきでしょうか?
810デフォルトの名無しさん:05/01/19 06:09:24
>>809
本人の能力、経験、年齢、目的、時間、予算、その他いろいろな要素によるだろう
811デフォルトの名無しさん:05/01/19 06:21:24
>>808
私の検索能力ではさっぱり引っかからなかったので検索サイトを紹介されても困ります
812デフォルトの名無しさん:05/01/19 07:35:21
813デフォルトの名無しさん:05/01/19 08:34:43
>>812
ORなんて使えたのか!
別人だが初めて知った。
814デフォルトの名無しさん:05/01/19 13:14:32
検索ワード -対象外ワード
なんてのもあるよな。
815デフォルトの名無しさん:05/01/19 18:05:51
>>812
ありがとう
でも私はアマチュアです
816デフォルトの名無しさん:05/01/19 18:11:37
>>814
それは知ってる。
817デフォルトの名無しさん:05/01/19 19:16:42
libファイル、リンク外したのにリビルト出来るって
どういうことやねん!
VC遅い念。重い念。
818デフォルトの名無しさん:05/01/20 07:31:44
>>817
意味不明
819デフォルトの名無しさん:05/01/20 15:59:04
MFCでプログラム組んでます。
Visual C++ 6.0 でやってるんですが
120回のループさせてるところで60回目に

File dbgheap.c
Line 1011

Expression _CrtIsValidHeapPointer(pUserData)

って出て終了してしまうんです。
free関数でメモリ開放のときにエラーが出てるみたいです。
ここじゃねぇの?ってとこがあったらご教授を賜りたく存じます。
820デフォルトの名無しさん:05/01/20 17:15:01
>ここじゃねぇの?ってとこがあったら
あんたの頭。
821デフォルトの名無しさん:05/01/20 22:35:56
>>819
> ここじゃねぇの?
freeしてるところ。
822デフォルトの名無しさん:05/01/21 09:04:31
VCでダイアログプロジェクトの
インストーラを作成したいのですが、
(VBのsetup.exeを作るみたいに)
方法を教えてください

DLLも含んだ形で作りたいです
よろしくお願いします
823デフォルトの名無しさん:05/01/21 09:50:41
>>822
インストールシールドでも買えばぁ。
GrapeCityでも似たようなツール出してるし。
さもなきゃアーカイバーの自動実行機能とバッチファイルの組み合わせとか。
824デフォルトの名無しさん:05/01/21 09:52:28
>>823
InstallShieldは個人で買うには高すぎるな
825822:05/01/21 10:20:53
すみません フリーツールで見つけました
検索がたりませんでした
826デフォルトの名無しさん:05/01/21 12:42:33
オセロを作ったんですけど左右をつなげてループ状にしたいんですけどどうすればいいんでしょうか?
827デフォルトの名無しさん:05/01/21 14:01:35
>826
判定に余りの性質を使う。余りは割る数を超えるとループする。負にならないように補整が必要
828デフォルトの名無しさん:05/01/21 14:52:26
ゲーム製作技術@2ch掲示板
http://pc5.2ch.net/gamedev/
829デフォルトの名無しさん:05/01/21 15:49:38
MFCで
CEdit* y =(CEdit *)GetDlgItem(IDC_EDIT)
のようにエディットから出たデータを;
double x = atof((const char*)y);
ダブル型にして計算処理をしたのですが、
SetWindowTextに配置する為にCString型に直すにはどのようにすればいいのでしょうか?
830デフォルトの名無しさん:05/01/21 15:53:27
>>826
C言語で素晴らしいオセロを作らないか?
http://pc5.2ch.net/test/read.cgi/tech/1087979678/
831デフォルトの名無しさん:05/01/21 15:54:10
>>829
CString foo;
foo.Format("%g", x);
832デフォルトの名無しさん:05/01/21 17:27:26
>>829
DDXならdoubleだけでできる
数字以外の入力もはじいてくれる
833デフォルトの名無しさん:05/01/21 19:46:01
show で表示した新規ダイアログの
タイトルバーに、タイトルが出ないんですが、
出す方法ってありますでしょうか?

setWindowText をやっても全然でません

呼ぶ側、呼ばれる側どっちもsetWindowTextやったんですが、だめです
なんか方法あったらおしえてください 
834デフォルトの名無しさん:05/01/21 19:50:16
>833
スタイル設定で
835デフォルトの名無しさん:05/01/21 19:57:44
>>834
スタイルのキャプションでも
入れてるんですが、反映されないんです

すみません よろしくお願いします
836デフォルトの名無しさん:05/01/21 20:17:59
暴れる前にマニュアル見ろ
WS_SYSMENU
837デフォルトの名無しさん:05/01/21 20:46:07
>>831-832
formatで解決出来ました。
どうもありがとうございました。
838デフォルトの名無しさん:05/01/21 21:24:52
質問です。
作成しているアプリケーションで、
タスクトレイに入ったメニューを右クリックしたときに出現するフローティングメニューが、
キーボードによるアクセスを受け付けてくれません。
まったく同じフローティングメニューをウィンドウで右クリックして出現させるとうまくキーボードからアクセスできます。

どのようにすればタスクトレイアイコンの右クリックメニューがキーボードによるアクセスを受け付けてくれるかお願いします。
839835:05/01/21 21:59:05
>>836
どうもありがとうございました
できました
840デフォルトの名無しさん:05/01/21 22:04:54
>838
有名なバグ。
「WM_NULL TrackPopupMenu」でぐぐれ
841デフォルトの名無しさん:05/01/21 22:22:19
よくアプリケーション等でファイルを選択する時のダイアログとして、
左側にドライブの選択、フォルダの階層が表示されていて、
右側にそのフォルダ内のファイルが表示されたりするようなものがありますが
このようなダイアログはMFC等で用意されてないのでしょうか?
また用意されていない場合それを作成する為のヒントになるようなHPがあれば
教えていただけませんか?よろしくお願いします。
842838:05/01/21 22:47:37
うーん・・・治りません・・・・・

SetForegroundWindow( hWnd );
TrackPopupMenu( hMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hWnd, NULL );
PostMessage( hWnd, WM_NULL, 0, 0 );

こんな感じですよね?
一応こういった形でやっているのですが・・・

トレイアイコンを右クリックしてフローティングメニューが出る↓
フローティングメニューの中に(つまりリソースファイルのメニューの中に)設定した
キーボードショートカット"ファイルを開く(&O)"ならOを押す↓
トレイアイコンからの右クリックメニューだけはキーボードアクセスに反応しない
という感じです。

何かタスクトレイアイコンのフローティングメニューに設定するような
アクセラレータ関連づけ作業があるのでしょうか・・・?
843デフォルトの名無しさん:05/01/22 14:58:55
age
844デフォルトの名無しさん:05/01/22 15:15:36
今、VC++6.0(SP6)で「Accelerated C++」を参考にしながらC++を勉強しています。
本の中に<alogorithm>ヘッダで定義されているmaxという関数を使用している箇所が
あるのですが、この部分でエラーになってしまいます。
(algorithmというファイルを見てみましたが、maxの定義はありませんでした。)

調べたところ、どうやら環境が古いらしいのですが、ServicePackも6までしかでてないと
思いますし、対処法がわかりません。
どなたか対処法をお教えください。よろしくお願いします。
845デフォルトの名無しさん:05/01/22 15:34:24
>>844
エラーの内容は?
846デフォルトの名無しさん:05/01/22 15:41:47
>>845
レスありがとうございます。説明不足でした。

error C2065: 'max' : 定義されていない識別子です。
です。
847デフォルトの名無しさん:05/01/22 15:44:25
>>846

ああそういえば入ってなかったな…
STLPortを入れるか、maxぐらいなら自前で作ってしまっては?
848デフォルトの名無しさん:05/01/22 15:45:56
849デフォルトの名無しさん:05/01/22 16:03:05
STLPort(これが何なのか理解できていませんが)を入れてみようと思います。
ありがとうございました。
850デフォルトの名無しさん:05/01/22 16:16:09
>842
hWndはどうなって?
851デフォルトの名無しさん:05/01/22 18:57:41
>>850
貴婦人っぽいな。
852838:05/01/22 22:05:48
hWndはメインウィンドウを作成するCreateWindowのウィンドウハンドルですの。

                                   ∧( ̄ ̄ ̄ ̄\
                                  /   ̄ ̄ ̄\ \
                      ( ̄ ̄ ̄\     .| (°) (°) l  \ \
                       ̄ ̄\  \    |  (●)  | /  l
                          .\  \  |   l∪l   l/  / あばばばばばば
                            \ \  \  .ヽ/  ./  /
                              \  ̄ ̄        /
                                ̄ ̄|      |
                                  |      |
                   / ̄ ̄ ̄ ̄)       |      |
     / ̄ ̄ ̄ ̄ ̄\   /  / ̄ ̄ ̄        .|      |
    <  ● ⌒ _ \/  // ̄ ̄ ̄ ̄)     /  /l   .|
     |    ● ⊃>    /  / ̄ ̄ ̄    /  / |  |
    <  ● 、_,  ̄ __/  /\       /  /  |  |
     \_____/   \    \     |  |   \  \
                    \    \    .|  |    .\  \_
         あ          |    |   |  |      \    l
         ば          |    |    \  \        ̄l |
         ば          /     |     / /         ̄
         ば        /  /l  |      ̄ ̄
                 /  / |  |
                /  /   |  |
               | l ̄    |    ̄)
                \_)    
854デフォルトの名無しさん:05/01/23 07:17:07
ショートカットキーの設定とかでエディットボックスに入力した「Ctrl+V」とか
表示されるのって、どのソフトも同じような作りですけど普通のエディットボックス
じゃなくて特殊なものなんですか。
855デフォルトの名無しさん:05/01/23 07:36:45
>>854
アクセラレータキーをMSのガイドラインかなんかに従って皆が皆Ctrl+Vは貼り付けになるように実装している。
856デフォルトの名無しさん:05/01/23 07:56:23
>>854
MSEditBoxというコンポーネントがあるんでこれ使うと楽。
857854:05/01/23 08:02:17
キーバインドというんでしょうか。
ソフト毎に「Alt+BSは○○○を実行」みたいにカスタマイズできる場合の、その設定する画面の
エディットボックスのことなのです。Ctrlキーを押すと「Ctrl +」のように表示されて、Ctrlと「K」キーを
同時に押すと「Ctrl + K」となるのを、自前で実装しているのではなく既成のコントロールがあるのでは
と思いました。いかがでしょうか。
858854:05/01/23 08:08:52
>>855
ありがとうございます。
Google検索ではヒットしなかったのですが、どのようなものか教えていただけると幸いです。
859デフォルトの名無しさん:05/01/23 08:11:31
>>858
ごめん。忘れてちょうだい。
860デフォルトの名無しさん:05/01/23 08:20:35
>>857
ホットキー・コントロール
http://www.kumei.ne.jp/c_lang/sdk2/sdk_192.htm
861854:05/01/23 08:23:30
すみません。レスアンカー間違えてました。

>>856さんの情報をもとにいろいろ探していたら、「ホットキーコントロール(msctls_hotkey32)」という
単語に行き当たりました。どうやら、これでいけるような気がします。
862854:05/01/23 08:24:40
>>857
ああっ、リロードするべきでした。
ありがとうございます。これから使ってみるつもりです。
863854:05/01/23 08:25:36
(´-`).。oO(なんで番号間違えるんだろう…)
864デフォルトの名無しさん:05/01/23 09:51:45
mapやcodをデバッグに利用する方法を知りたいのですが、
参考になるweb/書籍ありますでしょうか?
865デフォルトの名無しさん:05/01/23 18:35:20
>864
この辺りを漁れ。
http://msdn.microsoft.com/msdnmag/issues/02/03/hood/default.aspx

MSJも英語も読めないのはきびしいぞ。
866デフォルトの名無しさん:05/01/23 23:07:56
win98+VC6 で問題なく終了していたプログラムを
winXP+VC6 の環境で実行すると
終了時に例外処理(初回) ・・0xC0000005: Access Violation
が出てしまいます。
調べたところプロジェクトワークベースの新規作成ウイザードで作ったhello worldでも
警告が出ました。 対処方法はあるのでしょうか?
867デフォルトの名無しさん:05/01/24 00:05:01
エラーメッセージを省略してるからわからないな

ライブラリのバージョン違いっぽいけど
868866:05/01/24 00:15:25
ありがとうございます。エラーメッセージは
例外処理 (初回) は test.exe (USER32.DLL) にあります: 0xC0000005: Access Violation。
です。user32.dllについて調べてみます。

869デフォルトの名無しさん:05/01/25 12:26:30
classをつくり、その中の001.hで
double dblDirect[16][140][140];
というメソッドというか配列を宣言して実行すると
---
問題が発生したため、test0011.exe を終了します。 ご不便をおかけして申し訳ありません。
作業途中であった場合、その情報は失われた可能性があります。
この問題を Microsoft に報告してください。
弊社に送信するためのエラー報告が作成されました。 弊社では、この報告を匿名の機密情報として扱います。
(後略)
---
のエラーが出て終了します。
double dblDirect[4][140][140];
だと終了せずにすみます。
このdblDirect配列はエラーチェックの為、実際には使われません。
8*16*140*140=2.5Mと、エラーを起こす程大きい配列でもないのですが...

原因がわかる方お願いします。VC++6.0です。
870デフォルトの名無しさん:05/01/25 12:37:49
スタックのデフォルトの大きさは 1MB だった気がする。
-> よって、スタックオーバーフローと見た。
871869:05/01/25 12:52:52
>870
おかげさまで解決しました。ありがとうございました。
872デフォルトの名無しさん:05/01/25 14:32:32
>>869
そのままエラー報告送信したらM$がバグ取りしてくれるのかなぁ・・・
873デフォルトの名無しさん:05/01/25 17:47:32
Javadocのように、ソースを解析してメンバ変数、メンバ関数一覧のような
レポートを生成するツールってありますか?
874デフォルトの名無しさん:05/01/25 17:55:38
>873
フリーのものならcppdoc,doxygen
875デフォルトの名無しさん:05/01/25 17:57:04
doxygen+dotが便利かな
876デフォルトの名無しさん:05/01/25 18:11:59
>>874-875
ありがとうございます、非常に助かりました。
877デフォルトの名無しさん:05/01/25 21:21:43
Visual Stdio 6.0 を使用しているのですが、あるところにブレークポイントを挿入し、その動作をステップインでトレースを行うと必ず

77CF86CB cmp dword ptr [esp+4], 0DCBAABCDh
77CF86D3 jne 77D2DAE8
77CF86D9 add esp, 8
.....

のような混合モードに入ってしまい、プログラム文章を追うことが出来ません。
混合モードに入らないでデバッグする方法ってありませんか?
878デフォルトの名無しさん:05/01/25 21:24:41
あるところにおじいさんとおばあさんが山に住んでいました
879デフォルトの名無しさん:05/01/25 21:48:32
>>877
直進あるのみか
ハンドルのついてない車を運転してるようなものか?
ちゃんと勉強した方がいいよ
880デフォルトの名無しさん:05/01/25 23:14:06
>>ちゃんと勉強した方がいいよ
はい。私も質問する前に勉強しようとしてからしようと思ったのですが、
基本的過ぎることなのか、どの参考書にもこのてのことが書いてありませんでした。

猫でもわかるHP、林晴彦シリーズ、MFC入門6.0
google[デバッグ 混合モード 回避]で検索など。

なにを使って勉強すればいいのでしょうか。
881デフォルトの名無しさん:05/01/25 23:29:37
>>877
自分の書いたソースコード外にステップインしてるんじゃないの?
システムのDLLとか。
882デフォルトの名無しさん:05/01/26 00:12:27
>>881 ありがとうございます。
はい。そのコード外にステップインせずにデバッグを追うことは出来ますか?
883デフォルトの名無しさん:05/01/26 00:25:34
ステップインせずにステップアウトして味噌。
884デフォルトの名無しさん:05/01/26 01:09:01
Visual C++ .NET と Visual C++ は何が違うんですか
885デフォルトの名無しさん:05/01/26 01:13:02
バージョンによって呼び方が違う
6.0 : Visual C++ 6.0
7.0 : Visual C++ .NET
7.1 : Visual C++ .NET 2003
8.0 : Visual C++ .NET 2005
886884:05/01/26 01:18:33
つまり「.NET」はバージョンを表すだけで本体は同じなんですね。
ありがとうございました。
887デフォルトの名無しさん:05/01/26 01:20:04
本体は同じって…バージョンが違えば機能も違うわけだが
888884:05/01/26 01:22:16
ごめんなさい、表現が悪かったです。
889デフォルトの名無しさん:05/01/26 11:23:52
>>884>>885
俺的バージョンアップのいめーじ

6.0 -> 7.0
.NETフレームワークを使えるようになり、言語間の連携が容易になった。
だがVCの地位は他が上がったぶん相対的に下がったような?

7.0 -> 7.1
コンパイラが賢くなりテンプレートの解釈が飛躍的に向上。
7.1は買う価値あり。

7.1 -> 8.0
何が違うんだろ?
890デフォルトの名無しさん:05/01/26 12:38:02
8.0はC++/CLI
891デフォルトの名無しさん:05/01/26 15:08:21
俺的バージョンアップのいめーじ
6.0 -> 7.0
.NETを使えるようになったが、IDEがくそ重くなってしかも使い勝手が
大きく変わってむしろ使いにくくなった。コンパイラの性能は向上した。
7.0 -> 7.1
とうとう開発環境のNT4.0でのサポートが打ち切られた。IDEの微妙な所が
改善されているが、相変わらず重い。
7.1 -> 8.0
見た目が派手になった。7.1よりは使いやすいが、糞重たいのは変わらない。
ファイルがデフォルトでユニコードで保存されるようになったのはこの
バージョンからか?
892デフォルトの名無しさん:05/01/26 15:34:06
バカだな、変わらないけど変わったように見せるのもオフィスと同じ
俺はもういらない
893デフォルトの名無しさん:05/01/26 15:37:44
いまだ6.0を使っている件について
894デフォルトの名無しさん:05/01/26 15:44:46
>>893
は偉いな、耐えがたきを耐えに苦労したんだな。他にもあるのに。
895デフォルトの名無しさん:05/01/26 16:08:12
どうも6.0→7.0は結構操作系も変わるって話なもんで中々乗り換えられない・・・。
896デフォルトの名無しさん:05/01/26 16:11:50
そうだな、個人の趣味で変えられませんしね
897デフォルトの名無しさん:05/01/26 17:18:32
すいません、6.0について教えて下さい。

今4.0を使ってるんですが、これだとDirectX8.0以降のSDKは使えません。(ライブラリがリンクできない)
んで6.0入手のアテがついたので6.0への移行を考えてるのですが、6.0にすれば
最新のDirectX9.0SDK(2004Dec)も使えるのでしょうか?
898デフォルトの名無しさん:05/01/26 17:21:35
>>897
自分でDLLを指定して正しい名前で呼び出せば自動だよ
899デフォルトの名無しさん:05/01/26 17:22:50
9.0は一応6.0でも使えるよ。
900デフォルトの名無しさん:05/01/26 17:30:38
>>898
4.0+DXSDK8.0の場合例えばddraw.libにシークできないとかのエラーメッセージが出てしまいます・・・
ちなみにGtk+2.0でも同様のエラーが・・・
名前を指定してのDLLの呼び出しは実はやった事がないヘタレ日曜プログラマです

>>890
マリガトウゴザイマス
これで心置きなく6.0へ移行できます
901デフォルトの名無しさん:05/01/26 18:16:01
>>897
Dx9SDK Dec2004 から VC6 は除外された気が…
Oct2004 までしか対応してくれなかったはず。

ついでに、今後それなりに内容に変更点があるようなので
リリースノートを見ておくと良いかと。
http://www.microsoft.com/japan/msdn/directx/dxreadmej.asp
902デフォルトの名無しさん:05/01/26 18:34:51
しょんな・・・(ノд`)

Oct2004を落としまつ・・・
903デフォルトの名無しさん:05/01/26 18:44:29
900>>さん
そのころ大変動あったかも、俺もDX7までしかやっていない、
OpenGLだな
904880:05/01/26 23:04:11
>> 883
ステップアウトしても混合モードに突入してしまいました。
ステップインとステップアウト、ステップオーバーの違いって?
905デフォルトの名無しさん:05/01/26 23:13:50
だめだこりゃ
906デフォルトの名無しさん:05/01/26 23:15:31
教えてあげたいのですが、マニュアルに詳しく書かれていることを
そのまま書くことになるし、長くなるのでとてもココには
書ききれません。ごめんなさい(><)
907デフォルトの名無しさん:05/01/26 23:15:57
HELP ME!!
908デフォルトの名無しさん:05/01/26 23:27:01
>ステップインとステップアウト、ステップオーバー
この違いなんてマニュアルを読むまでもなく、自分が書いたコードででも
動作確認してみればすぐに理解できるとおもうんだけどな〜。
909デフォルトの名無しさん:05/01/26 23:36:24
>>880
一回混合モードに入ると、その後は混合モード表示だ。

ただ、新規に「混合モード専用ウィンドウ」が開くだけなので、
そのウィンドウを閉じてあげれば、コードが出てくるだろう。
910デフォルトの名無しさん:05/01/26 23:38:20
逆に、アセでいいよ、最後はマシンコード追いかけるよ
911デフォルトの名無しさん:05/01/27 01:00:02
メッセージの %d で出力した結果「 130 のメッセージは何?(WM_PAINT etc.)」
とか調べたい時はどのようにすればいいのですか?
そんな方法ないでしょうか。
912デフォルトの名無しさん:05/01/27 01:30:29
混浴モード
913デフォルトの名無しさん:05/01/27 01:31:08
ネコミミモードも欲しいな。
914911:05/01/27 01:32:09
じこ解決しました
915デフォルトの名無しさん:05/01/27 03:44:53
赤坂うぜーぞ
916デフォルトの名無しさん:05/01/27 08:52:54
>911
<winuser.h>から、Perl、Ruby、エディタマクロと正規表現grep、XMLパーサなどでWM_*の定義を抽出した後、それを変換テーブルかswitch構文にしろ。設計方法は君の自由だ。
IDR_WM2IDS RC_DATA{
WM_NULL,WM_USER-1,
IDS_WM_NULL.
IDS_WM_...
...
917デフォルトの名無しさん:05/01/27 10:10:24
>>911
TextOut(hoge(msg.message))
こんな感じで文字列に変換してくれる関数があったはずだけど忘れてしまった。
918デフォルトの名無しさん:05/01/27 10:21:47
イマイチ>>911の言ってる意味がわからんが
>>917のレスからするとsprintfとかCString::Formatとかを使えば良いって話か?
919デフォルトの名無しさん:05/01/27 10:40:45
>>918
いや多分 case WM_PAINT: とかで個別に判断するのではなく、
デバッグ用途か何かで WM_PAINT とかの数字を "WM_PAINT" として
文字列でほしいんだと思う。

spy使えば解決するが、これと同じことをプログラムでやりたいんでしょ。
920デフォルトの名無しさん:05/01/27 10:41:45
・・・・・・って >>914 解決してるんじゃん。
921デフォルトの名無しさん:05/01/27 11:05:13
(;゚д゚)ァ....
922デフォルトの名無しさん:05/01/27 14:04:28
デバイスコンテキストってウィンドウにひとつでよろしいですか?
それとも、いくつもウィンドウがある中でひとつなのですか?
923デフォルトの名無しさん:05/01/27 14:16:08
>922
仮想化されてるので共有も多重化も可能。ビットマップやプリンタにも使える。CreateしたらDelete、GetしたらReleaseを後で呼ぶべし。詳しくはwinapiのDCを
924デフォルトの名無しさん:05/01/27 14:22:24
>>922
仮想のキャンバスみたいなものかな。
そのキャンバスに描いたものを何処へ表示(出力)するかは
自分で決めるって感じで。
925デフォルトの名無しさん:05/01/27 14:28:28
デバイスコンテキストって日本語で言うと何ですか?
926デフォルトの名無しさん:05/01/27 14:31:43
デバイスコンテキスト
927デフォルトの名無しさん:05/01/27 14:33:01
装置文脈
928922:05/01/27 14:35:56
ありがとございあした!
929デフォルトの名無しさん:05/01/27 14:44:01
>>925
体重何kgの人まで座れるか椅子の耐久性を競うやつ
930デフォルトの名無しさん:05/01/27 15:13:44
デヴ イス コンテスト
931デフォルトの名無しさん:05/01/28 02:38:38
メッセージボックスの上で、VK_RIGHT が押されたのを
ウィンドウプロシージャ内で判定したいんですけど、どうしたら出来るんですか?

というか、
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ;  のHWND には何の
ウィンドウハンドルが入るんですか? じぶんは メッセージボックスのハンドルと
思ってます。
932デフォルトの名無しさん:05/01/28 02:40:07
なんかわかりにくいですけど、要するに VK_RIGHT が押されたのを
メッセージボックス上で判定したいんです・・・
よろしくお願いします。
933デフォルトの名無しさん:05/01/28 02:45:53
winMain
でキャッチするだけだろう?
わかんない
934デフォルトの名無しさん:05/01/28 03:09:42
汚くて申しわけないですが、とりあえずこんな感じなんです。
どこを変えればいいでしょうか? 
これでも分かりにくかったらすみません。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/141.txt
935デフォルトの名無しさん:05/01/28 03:23:29
基本から分かってないと思います・・・
だれか助けて・・・
936デフォルトの名無しさん:05/01/28 03:45:50
コンパイルしようとしたら
C:\Program Files\Microsoft SDK\include\ObjBase.h(398) : error C2146: syntax error : missing ';' before identifier 'IRpcStubBuffer'
と出ます。件の行には
typedef interface IRpcStubBuffer IRpcStubBuffer;
と書いてあります。
何を調べたらいいんでしょうか??
937デフォルトの名無しさん:05/01/28 08:42:03
>>936
あんたの頭。

それは兎も角、その行の前辺り。
938デフォルトの名無しさん:05/01/28 10:13:51
>931-932
msgboxをhookしろ。ぐぐれ
939デフォルトの名無しさん:05/01/28 10:16:54
>936
interfaceの定義がわかっていない。
C++でもCでもそんなCOMの実装は見たことがない。
940デフォルトの名無しさん:05/01/28 16:21:57
>>939
確かどこぞのヘッダにこんな呪文が
#define interface struct
941デフォルトの名無しさん:05/01/28 18:36:10
そういやヘッダーファイルを読むやつは少なくなったな。
プリプロセサの吐いたソース読むと面白いのに
942デフォルトの名無しさん:05/01/28 20:02:50
最近MFCの勉強を始めたんですが
参考にしている本がVC6.0プロに対応していて、私はVC++6.0スタンダードしかもっていません。
本を読んでいるとスタンダードは細かい設定が出来ないようなんですが
VC++6.0プロを購入するべきでしょうか?
943デフォルトの名無しさん:05/01/28 21:04:06
>>942
勉強目的ならスタンダードで十分だ
944デフォルトの名無しさん:05/01/28 21:12:45
もう売ってないし
そんなくだらない理由で買い換えるアホはいないだろ
945デフォルトの名無しさん:05/01/28 21:36:37
>943-944
レスthx
しばらくスタンでがんばります
946デフォルトの名無しさん:05/01/29 00:41:29
サービスパック入れて手打ちで設定でプロ版になるらしい
947デフォルトの名無しさん:05/01/29 01:29:08
Visual Studio .NET2003を使用してますが、
標準出力に出力した内容は、どこに表示または
保存されていますか?
標準エラー出力もわかりません・・・。
948デフォルトの名無しさん:05/01/29 01:41:47
>>947
コンソールアプリなら起動したコンソールに、
そうでないならお察しください。
949デフォルトの名無しさん:05/01/29 02:02:21
>>948
どうもです。
ぐぐった所では、MFCならTRACEというマクロ?、ATLなら他の何かで
表示できるらしいのですが、生のC++非コンソールアプリでは無理なのでしょうか。
950デフォルトの名無しさん:05/01/29 02:05:34
>>949
TRACEとかはIDEのアウトプットに出る。コンソールじゃない。
おまいはどこに出したいのだ?
951デフォルトの名無しさん:05/01/29 02:12:00
>>950
デバッグ用に出したいので、どこでもいいんです。
見れればOKです。
できればwstringとstringの両方を自動で対応できるなら
なおさらいいです。
952デフォルトの名無しさん:05/01/29 02:35:24
>>951
環境依存でいいのなら_RPT系マクロがある。
953デフォルトの名無しさん:05/01/29 02:41:36

複素数を含んだ双曲関数(sinh,cosh,tanh)の計算をしたいのですが、どのようにしたらようでしょうか?何かアイディアがあればお願いします。
ヘッダファイルを用い、複素数の和、差、積、商、平方根、絶対値、指数関数については定義済みで、動作確認もされています。
954デフォルトの名無しさん:05/01/29 02:42:39
sinは計算できるの?
955デフォルトの名無しさん:05/01/29 02:44:20
できます
956デフォルトの名無しさん:05/01/29 02:46:52
2次元ベクトルで良いじゃん
957953:05/01/29 02:48:08
2次元ベクトル??
つまり、実部と虚部を別々に計算するということですか?
958デフォルトの名無しさん:05/01/29 02:49:42
内積、外積しだいだが
959デフォルトの名無しさん:05/01/29 02:50:30
>>953
マルチしたまま放置せんと、該当スレに謝罪して来い。
960953:05/01/29 03:41:17
すみません。これまでの書き込みは無視して下さい。
大変失礼しました。
961デフォルトの名無しさん:05/01/29 03:51:30
VC っていつの間にか UI を簡単に作れるようになったんだ!
いつから出来るようになったの?(バージョン及び年)
ずっとただの CV の Windows 版だと思ってたよ。
962デフォルトの名無しさん:05/01/29 07:38:56
>>961
V1.0から
963デフォルトの名無しさん:05/01/29 10:58:11
.NETからは一応フォームエディタも
964デフォルトの名無しさん:05/01/29 11:25:55
>>961
製品名の「Visual」は伊達じゃないんだぞ・・・
965デフォルトの名無しさん:05/01/30 04:01:01
Win98の互換を入れると動くプログラムをXPにも対応させたいの
だけれどどうすればよいでしょうか?
互換を入れると普通に動くのですが・・・

Win98のVC++6.0です。
966デフォルトの名無しさん:05/01/30 07:38:31
>>965
環境依存するようなプログラムを排除すればいいだけ。
967デフォルトの名無しさん:05/01/30 16:28:12
strcmpってなんですか?
これが-1になる理由がよくわかりません。
#include <stdio.h>
#include <string.h>

main()
{
printf("%d\n",strcmp("a","may"));
}
968デフォルトの名無しさん:05/01/30 16:37:02
わかりました。
このサイトのstrcmpの結果が間違っているんですね。

http://word.starword.org/c/c_string_h.html
-2,2,-97,97とかいてありましたが、
-1,1,-1,1になりました。正か負か0か比較判定するんですね。
969デフォルトの名無しさん:05/01/30 17:20:08
>>967-968
スレ違い
970デフォルトの名無しさん:05/01/30 20:12:26
猫でもわかるSDK39章について
フォントの設定次第で実行結果のWindowに"猫でも分かる"と表示されずに"LAai@eなどと文字化けしてしまいます。
文字コードの設定方法の違いだけだと思うのですが、文字コードなどの設定はどこで変更すればいいのでしょうか?
971970:05/01/30 20:13:32
スレ違いすみません。こっちに質問しました
http://pc5.2ch.net/test/read.cgi/tech/1054813207/l50
972デフォルトの名無しさん:05/01/31 12:29:20
>>962-964
ありがとございます。
フォームエディタは .net からなんですね。
VC 1.0 は仕事で使いましたが、使いにくくてそれ以降使ってませんでした。
まぁほとんどコンソールプログラムばっかだし。
973裕美子(東京の孤独な女) ◆h8lIp1b.Ek :05/01/31 21:18:42
URLデコードに関するロジックをC++で実装したいのですが
サンプルをどなたか書いてくれませんでしょうか?

VC++6.0を持っているのですが、ヘルプで検索してもよく分からないので
お願いいたします。
974デフォルトの名無しさん:05/01/31 21:21:42
Windowsでスレッドは何個まで作れますか?
975デフォルトの名無しさん:05/01/31 21:24:13
>>974
いくらでも
976デフォルトの名無しさん:05/01/31 21:37:35
>>974
4G個
977デフォルトの名無しさん:05/01/31 21:54:47
>>973
そういうのはC++スレの住人が得意
>>977
でもマルチポンポしたくないので、このスレで
お願いします。
なんて、裕美子のまねをしちゃったぜ(へへへ)
>>973

googleで「URLデコード」で検索してごらん、アドレスは失念したけど
VBでコーディングした例が見つかるはずだ。
981デフォルトの名無しさん:05/01/31 22:32:50
>>975
>>976
ありがとうございます
982デフォルトの名無しさん:05/02/01 01:08:09
>>891
7.0ってNTに対応してたのか…知らんかった。
てっきり.NETは2000以降かと。
983デフォルトの名無しさん:05/02/01 08:13:57
985は次スレを立てよう。
984デフォルトの名無しさん
7.0で切り捨てられたのは95系じゃなかった?