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


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

★初心者にVisual C++を教えるスレ★ Part6
1 名前:デフォルトの名無しさん :03/05/15 02:05
タイトルのとおり、
Visual C++ 初心者用スレッドです。

前スレ・関連スレは、>>2 ぐらい。

2 名前:デフォルトの名無しさん :03/05/15 02:05
/** 前スレ **/
★初心者にVisual C++を教えるスレ★ Part5
http://pc2.2ch.net/test/read.cgi/tech/1048698321/

★初心者にVisual C++を教えるスレ★ Part4
http://pc2.2ch.net/tech/kako/1044/10441/1044196393.html

★初心者にVisual C++を教えるスレ★ Part3
http://pc2.2ch.net/tech/kako/1038/10381/1038160750.html

★初心者にVisual C++を教えるスレ★ (←実はPart2)
http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html

★初心者にVisual C++を教えるスレ★
http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html

/** 関連スレ **/
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/l50
C++相談室 part19
http://pc2.2ch.net/test/read.cgi/tech/1052625846/l50

/** 外部リンク **/
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/

3 名前:デフォルトの名無しさん :03/05/15 02:05
>>1
削除依頼出しておけよ

4 名前:デフォルトの名無しさん :03/05/15 02:05
以前あるスレで作られた初心者VC++スレ用テンプレ
質問・検索の仕方はここを見れ。
http://www.geocities.co.jp/Beautycare/4965/public/template.html

5 名前:1 :03/05/15 02:07
>>3
もう立っていました?全部を2回見回したのですが、無かったので。すいません。

6 名前:デフォルトの名無しさん :03/05/15 02:08
可憐にしなやかに、さらには豪華に6ゲット


7 名前:デフォルトの名無しさん :03/05/15 02:09
豪快かつ端麗な7げっと

8 名前:デフォルトの名無しさん :03/05/15 02:11
ムーンウォークで8ゲット

9 名前:デフォルトの名無しさん :03/05/15 02:17
やさしい日差しが俺の眠りを妨げる・・・
ふっと時計に目をやる。
まだ仕事までには、3時間以上時間がある・・・
俺は、まだ眠っている頭を覚ますためにコーヒーメーカーのスイッチを入れた。
しばらくすると、コーヒーの良い香りが部屋を追おう。
すっと手を伸ばし、タバコをくわえ火を付けた。

そして、一言、俺は呟いた・・・ 「9ゲット」と。。。         



10 名前:デフォルトの名無しさん :03/05/15 02:23
放課後に体育館の裏に来て欲しいと言われた。
はやる胸を抑えつつ向かう。
そこには彼女が待っていた。
彼女は「読んで・・・コレ」とはにかみながら俺に手紙を渡し、去っていった。

家に帰って彼女の手紙を読んでみた。
そこにはこう書いてあった



「10ゲット」

11 名前:前986 :03/05/15 02:31
>> http://pc2.2ch.net/test/read.cgi/tech/1048698321/984
>> http://pc2.2ch.net/test/read.cgi/tech/1048698321/996
MFCはAppWizard(exe)でSDKはWin32Applicationのことでしょ?
僕はSDKの時ANSI-Cでできるのはそれでやってしまう。新しく覚えるの
めんどくさいので。SDKだとあかんと言うのが分からないス。
猫の ttp://www.kumei.ne.jp/c_lang/sdk/sdk_05.htm
sprintf ttp://www.google.co.jp/search?q=cache:ompCcSA48HcC:www.asahi-net.or.jp/~qn6o-mrtm/ds2new/dev/info/sdk_comp.htm+SDK%E3%80%80%E6%95%B0%E5%80%A4%E3%80%80%E8%A1%A8%E7%A4%BA&hl=ja&ie=UTF-8

12 名前:デフォルトの名無しさん :03/05/15 03:54
やり方がわからんつー意味だろ

13 名前:デフォルトの名無しさん :03/05/15 07:43
メッセージループ内に

case WM_CLOSE:
if (MessageBox(hWnd,"","",MB_OKCANCEL) == IDOK) DestroyWindow (hWnd);
break;

と書いたのですが、キャンセルしてもウインドウが破棄されてプログラムが終了してしまいます。
なぜなのでしょう?

14 名前:デフォルトの名無しさん :03/05/15 08:25
VC7で作ったものがクリーンインストールしたw2kで動きません。
曰く「ダイナミックリンクライブラリMSVCR71D.dllが指定された
パスhogeに見つかりませんでした。」だそうです。
dllを入れるかVC6でコンパイルしなおすしかないんでしょうか。
できればexeだけで配布したいんですが。

15 名前:デフォルトの名無しさん :03/05/15 08:32
>>14
無理だろ。

16 名前:_ :03/05/15 08:49
  ∧_∧
 ( ・∀・)/< こんなのみつけたっち♪ 
http://www.hiroyuki.zansu.com/hankaku/jaz03.html
http://hiroyuki.zansu.com/hankaku/jaz10.html
http://www.hiroyuki.zansu.com/hankaku/jaz08.html
http://hiroyuki.zansu.com/hankaku/jaz09.html
http://www.hiroyuki.zansu.com/hankaku/jaz06.html
http://hiroyuki.zansu.com/hankaku/jaz05.html
http://www.hiroyuki.zansu.com/hankaku/jaz01.html
http://hiroyuki.zansu.com/hankaku/jaz02.html
http://www.hiroyuki.zansu.com/hankaku/jaz07.html
http://hiroyuki.zansu.com/hankaku/jaz04.html

17 名前:デフォルトの名無しさん :03/05/15 10:09
レスありがとうございます。無理ですか。
諦めてVC6.0にします。ありがとうございますた。

18 名前:デフォルトの名無しさん :03/05/15 10:35
やったああああああ
sprintfじゃなくて
wsprintfにしたら、計算した値がウィンドウにでたあああああ!!!
でも、なんでsprintfだどエラーなんだ
BCC5.5

LRESULT CALLBACK WinProc(HWND hwnd, UINT msg,WPARAM wP, LPARAM lP)
{

HDC hdc;
int i=10,j=20,x;char str[256];
x=i+j;
wsprintf(str,"%d",x);

PAINTSTRUCT ps;
switch(msg){

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,100,100,str,strlen(str));
EndPaint(hwnd,&ps);
break;


19 名前:デフォルトの名無しさん :03/05/15 10:36
Win32APIを使用してキーが、
同時(2個以上)押され場合に、
すべてのキーコードを取得する方法を、
教えて頂けますでしょうか。
よろしくお願いします。

20 名前:デフォルトの名無しさん :03/05/15 10:41
なんかよくわからないので、VC++ごと配布したいんですけど、無理がありますかね。

21 名前:デフォルトの名無しさん :03/05/15 11:50
>>20
かなり無理があるね。

22 名前:デフォルトの名無しさん :03/05/15 11:52
>>17
exeを配布する時はReleaseビルドで配布するんだぞ。

23 名前:デフォルトの名無しさん :03/05/15 12:02
>17
「スタティックライブラリでMFCを使用する」でいけない?

24 名前:名無し@沢村 :03/05/15 12:40
>>13
ヌヒよ、breakをreturnに置き換えてみたらどうだ。

25 名前:デフォルトの名無しさん :03/05/15 13:08
>>19
ReadConsoleInput、PeekConsoleInput等でキーコードは得れる。
しかし、2つ得るなどの細かい指定は自作する必要がありそう。

26 名前:デフォルトの名無しさん :03/05/15 16:04
>>1 新スレ乙です。m(__)m
質問なのですが、VCのコードエディタのコンテキストメニューで
「定義にジャンプ」ってあるのですが、「実装にジャンプ」する
ような機能はないのでしょうか?

27 名前:13 :03/05/15 18:04
>>24
IDCANCEL時にreturn 0;とすることで大丈夫でした。
break;した先にreturn (DefWindowProc (hWnd, msg, wParam, lParam));が
あったせいなんですね。どうも有難うございました。

28 名前:25 :03/05/15 18:59
>>19 もしかしてウインアプリの方?なら
+-を50ミリ秒以内で連続で押すと音が鳴る。擬似同時押し。
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
static long bT=0;//beforeTime
switch(msg)
{
case WM_CHAR:
if(wParam=='+'||wParam=='-')
if(bT>=GetTickCount()-50) Beep(0,0);
else bT=GetTickCount();
break;
}

29 名前:デフォルトの名無しさん :03/05/15 20:09
>>19
TranslateMessageが呼ばれる前(PreTranslateMessage)に WM_KEYDOWN
捕まえて GetKeyboardState() でいけるんではないか。

>>25 なんというか、すげー。

30 名前:29 :03/05/15 20:11
>>19
調べるキーが限定されてるんなら GetAsyncKeyState() で調べたほうが簡単かも

31 名前:  :03/05/15 20:27
プログラムは子供の時MSXでベーシックを組んで以来全く経験のない素人です。
すこし根本的なことを質問させてください。

必要にかられてWINで動くプログラムを作ろうと思い、この板のあちこちの初心者
スレを見ていたのですが、まず気づいたのはプログラム言語と言っても色々あると
いうことです。
猫でも分かる〜というHPに行ったのですが
・C#
・C言語
・C++
の3つがあがっていたし、他に
・ビジュアルベーシック
というのもあるのですよね。

で、質問です。いったい上の4つは何がどう違うのでしょうか?
初心者が始めるにはどれが一番よいのでしょうか?

教えてください。

32 名前:デフォルトの名無しさん :03/05/15 20:28
なぜか構造体メンバの.での参照が出来ないんですけど、VC++じゃ直接参照はダメなんですか?
わざわざポインタにして->しないとダメなんですか??

33 名前:デフォルトの名無しさん :03/05/15 20:30
>>31
ここで聞きなおしたほうがよいかと

***すれ立てるまでもない質問はここで 第36刷***
http://pc2.2ch.net/test/read.cgi/tech/1051370263/


34 名前:  :03/05/15 20:33
>>33

ありがとう。
そうします。

35 名前:デフォルトの名無しさん :03/05/15 20:38
19です。「GetKeyboardState」を使えばと、
思ったのですが使い方が・・・
初心者なものでアドバイスをお願いします。


36 名前:26 :03/05/15 21:13
もまいら>>26の質問スルーせんでくさい。
おながいします。m(__)m

37 名前:デフォルトの名無しさん :03/05/15 21:24
>>26>>36
スルーしたわけではないのですが、分からないんです。デバックも使ったこと
無いですし。

38 名前:26 :03/05/15 21:33
>>37
ありがとうTT

39 名前:デフォルトの名無しさん :03/05/15 22:14
私には「定義にジャンプ」すれば実装にジャンプしているように見えるのですが。
「参照にジャンプ」すると宣言に。

40 名前:デフォルトの名無しさん :03/05/15 22:22
自作の関数の場合「定義にジャンプ」は、実装にジャンプする場合と、宣言に
ジャンプする場合の2通りがある。どういう規則なんだろ??

MFCのメンバなんかは必ず宣言にジャンプするよね。

41 名前:デフォルトの名無しさん :03/05/15 22:26
>>39-40
あ、そうなんですか?
初心者でMFCしか追ってないもので...
個人的には定義にジャンプでhファイルのクラス内の宣言に飛んで
実装にジャンプでcppファイルの実装に飛んで欲しいのですが。





42 名前:26 :03/05/15 22:29
あと、関連なのですが定義にジャンプのとき「あいまいさの解決」
ダイアログがでることがありますが、「全然あいまいちゃうやん」
っていう時ないですか?
全然継承もしていないクラスの同名の関数が出てきたり...

43 名前:40 :03/05/15 22:48
>>42
それはまぁ目をつむるとして(w

MFCのソースを手軽にブラウズできないもんかな。ブレークポイントかけてステッ
プインするか、MFC\SRCをgrepしている現状。VS6使ってるけど .NETもなの?

44 名前:デフォルトの名無しさん :03/05/15 22:53
>>43
マクロ使えば?

45 名前:40 :03/05/15 23:23
っていうか、改めてMSDN見なおしてみたら

『MFC : MFC ブラウザ データベース ファイルの使い方』に『MFC.BSC は、セット
アップ プログラムではインストールされないが、セットうpCDから \VC98\MFC\Src\
にコピーすれば、開いて使うことができる』とあるじゃん。早速コピー。

なんかワークスペースを開く度に、いちいち MFC.BSCを手動で開かんといけないみ
たいだが、MFCソースのブラウズでキタ―――(゚∀゚)―――!!!!!

よーし、MFC.BSCを勝手に開くマクロ組んじゃうぞー

46 名前:デフォルトの名無しさん :03/05/16 00:30
>41
言語仕様を読んでるわけじゃないけど、キミが「定義」と
思ってるものが「宣言」で、「実装」と言ってるものが「定義」
なのかもしれない。

47 名前:39 :03/05/16 00:41
わしもそう思う。
定義と宣言をごっちゃにすんなよ、とC++の入門書にはよく書いてあるが・・・。

48 名前:デフォルトの名無しさん :03/05/16 00:44
>定義にジャンプでhファイルのクラス内の宣言に飛んで
この文ですでにごっちゃになってる気が・・・

49 名前:41 :03/05/16 00:47
>>46-39
そうかもしれないです。
定義、宣言、参照いろんな言葉が入り乱れて
ワケわからんです...


50 名前:デフォルトの名無しさん :03/05/16 08:05
VC++で、純粋にMS-DOS(PC-98)で動かせるプログラム
ってプロジェクトとか設定するのかな?
プラットフォームがWin32しか選べない…DOS/V機じゃ無理なのかな?

51 名前:デフォルトの名無しさん :03/05/16 12:44
16bitプログラムが作れるのはVC++1.5まで

52 名前:デフォルトの名無しさん :03/05/16 19:54
なんかずいぶん懐かしい話だな

53 名前:デフォルトの名無しさん :03/05/16 20:24
VisualC++.NETで「新しいプロジェクトの作成」→「win32アプリ」→「windowsアプリ」で
プロジェクトを作成した場合のexeファイルのアイコンの変え方を教えていただけないでしょうか?
「空のプロジェクト」からの作成でしたらできたのですが、上記のやりかたでは
アプリケーションのアイコン、バージョン情報のアイコンだけしか変えられませんでした。
exeファイルのアイコンに使われるらしい ファイル名.ico をいじっても無駄でしたし、
それをいじるとicoファイル自体おかしくなってしまいます。
どなたかご教授お願いいたします。

54 名前:デフォルトの名無しさん :03/05/16 21:27
InvalidateRectで更新領域を指定してOnPaint内でGetUpdateRectで更新領域を取得して
描画更新する場合、2つ以上のスレッドでInvalidateRectを呼び出したりするとまずいですか?

55 名前:デフォルトの名無しさん :03/05/16 22:53
質問があります。

画像を表示したいのですが、
ある画素のRGB値を配列に格納して
それを表示する関数を作っています。

その画素を座標(x,y)に表示したいので

pDC->SetPixel( x, y, RGB(Red, Green, Blue) );
と記述しました。Red,Green,Blueは画素(x,y)の
RGB値です。

しかし、このように記述しても黒でしか現れず、困っています。
Red,Green,Blueにはちゃんと値は入っています。

なぜ表示できないのでしょうか?


56 名前:デフォルトの名無しさん :03/05/17 00:38
ラジオボタンを6つ作成してそれらは排他的に
なっていました。つまり、どれかボタンを押すと
どれかはチェックが外れるということです。

それからこのラジオボタンでの種類を増やしたくて
さらにラジオボタンを増やしました。合計9個にしました。
これを全て排他的にしたいのですが、なぜか新しく作った
3つのラジオボタンと以前に作ったラジオボタンに同時に
チェックが入ってしまいます。

過去ログを見ましたがグループにすればいいと思っていますが、
プロパティのグループにチェックを入れても何もなりません。

いったいどうすれば全て排他的になるのでしょうか?

57 名前:デフォルトの名無しさん :03/05/17 01:02
>>51
ぐっ…VCでは、諦めますか…
いまさらTurbo C++でもやりますか…(苦笑
それとも、無料でなんかあるかな?
レスサンクス!

>>53
そのプロジェクトに「新規作成」「ファイル」タブの「リソース スクリプト」を追加。
VC++内の左のタブ「ClassView」「FileView」に「ResourceView」が追加されたはず。

ResourceViewタブを開くと内部にディレクトリらしきものがあるはずなので、マウスで
右クリックして、メニューを開き「挿入」。
「リソースの挿入」というタイトルが現れるので「インポート」で使いたいアイコンを選択。

最後に「ビルド」で構築すると、上で選択したアイコンがexeのアイコンになっているはず。

58 名前:デフォルトの名無しさん :03/05/17 01:14
>>56
参考になるか分からんし、説明しにくいので勝手に判断してくれ。

Radio1 <- グループチェック有り
Radio2 <- グループチェック無し
Radio3 <- グループチェック有り
Radio4 <- グループチェック無し
Radio5 <- グループチェック無し

とすると、1-2、3-5のグループになる。
例えば「1と3」とか「2と5」は両方選べるが、「3と4」または「3と5」は排他。
つまり、グループの「最初」となるラジオボタンにグループにチェックを入れる。
俺は、面倒臭いのでSDKでマニュアルのラジオボタン作ってコード上で切り替えちまうが。

59 名前:デフォルトの名無しさん :03/05/17 01:21
>>53
すまん。>>57 の追加。
これVC++6.0のやり方だったは…。.NETで出来るか知らない。

60 名前:デフォルトの名無しさん :03/05/17 01:37
ダイアログ上のタブコントロールの上にイメージを描画したいんだけど、
更新がうまくいきません。

void
CMyDialog::OnPaint()
{
CPaintDC dc(this);
DrawImage(dc);
}

こうすると、タブコントロールで上書きされてイメージが見えない、

void
CMyDialog::OnPaint()
{
CPaintDC dc(m_TabCtrl);
DrawImage(dc);
}

こうすると、更新を繰り返して、しばらくすると落ちる。

こんな感じで、なやんでいます。
こういう場合の常套手段というのは何かあるんでしょうか?


61 名前:デフォルトの名無しさん :03/05/17 02:03
>>60
MFCは得意じゃないって言うか、SDKなので使ってないのだが…
なので資料そのまま書きます。

// ダイアログクラスのコンストラクタ
CFooDialog::CFooDialog( CWnd* pParent /*=NULL*/ )
: CDialog( CFooDialog::IDD, pParent )
{
// スタティック用ブラシを作成
m_brStatic.CreateSolidBrush( RGB( 0, 255, 0 ) );
}
////////////////////////////////////////////////////////////////////
// クラスウィザードより追加された WM_CTLCOLOR ハンドラ

HBRUSH CFooDialog::OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor )
{
if( nCtlColor == CTLCOLOR_STATIC ) // スタティックコントロールの場合
{
// ここで全てのスタティックコントロールについて
// 同じ背景を指定するので pWnd の区別をしない
return m_brStatic;
// m_brStatic はあらかじめ作成された CBrush
// オブジェクト
}
return CDialog::OnCtlColor( pDC, pWnd, nCtlColor );
}

by:「VC++によるWin32プログラミングTips」技術評論社

62 名前:デフォルトの名無しさん :03/05/17 02:20
>>58
ありがとうございます!できました!見事に排他的になりました!
具体的な例だったので非常にわかりやすかったです

でも確かにこれはめんどくさいというかタブオーダーを使う必要がありますね。

58さんはSDKでやるとおっしゃいましたがどういう方法でやっているのでしょうか?
SDKというのもあまりというかほとんどわからないのですがこれからのためにも
勉強しようと思いまして。

具体的に教えていただけるとありがたいです。

63 名前:デフォルトの名無しさん :03/05/17 07:33
>>62 たぶん。
MFC:MFCAppWizard(exe) VBとSDKの間
SDK:Win32Application Win32Api、ANSI-C等を組み合わせて自作する。

64 名前:デフォルトの名無しさん :03/05/17 11:52
リンク時に__imp__MessageBoxA@16という外部シンボルが解決
できないとかいうエラーが出ました。マニュアルにNTでコンパイル
するときは
Ignore linker errors: "unresolved external symbol __imp__MessageBoxA@16".
と書かれていたのですが、どうやってリンカのエラーを無視してやれば
いいのでしょうか。

65 名前:JBoy17031968 :03/05/17 15:02
始めまして、現在VisualC++にてプログラムを作成しておりまして、
機能上できるか否かこちらで質問させて頂きたいと思い書込み致します。
 質問の内容はVisualC++でメモリを分ける方法、あるアドレスはRAM領域
として、またある領域はROM領域としてメモリアクセスする方法なのですが
 何処かでそのようなメモリの設定が出来ましたでしょうか。

 
 使用しているOSはWindows2000Pro、VCは6.0を使用しております。
 また、べたべたのCなのでMFCやAPIは使用していません。


 以上です。

66 名前:デフォルトの名無しさん :03/05/17 17:08
VC++6のWin32 Application作成でこんなコード書いてビルドしたのですが
エラーが出ます。

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd)
{
return 0;
}

エラー
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です

だれか教えてください。


67 名前:動画直リン :03/05/17 17:11
http://homepage.mac.com/hitomi18/

68 名前:デフォルトの名無しさん :03/05/17 17:20
Releaceでビルドすると、信じられないくらい粗探しされて警告されるんですけど。
おかげで全く実行出来ません。警告を無視する方法って無いですか?
警告レベルを無しにしても実行出来ないし。

69 名前:デフォルトの名無しさん :03/05/17 17:30
>>66
そんなはずは無い。Win32ApplicationはWinMainが無いと未解決という
メッセージが出て、Win32ConsoleApplicationはmainが無いと未解決と
いうメッセージが出る。プロジェクト制作時に前者と後者を間違えたの
では無いですか?

70 名前:デフォルトの名無しさん :03/05/17 17:35
ウィンドウアプリの設定じゃなくて
コンソールアプリの設定でビルドしたとか
自分はそれに気づかないで
なんでだああ
と1日悩む

71 名前:デフォルトの名無しさん :03/05/17 17:36
プロジェクト設定で#define消しちゃったとか

72 名前:JBoy17031968 :03/05/17 17:42
次メール回答
設定を変えたらアクセスできました
お騒がせ致しました。

73 名前:デフォルトの名無しさん :03/05/17 17:49
>>69
ありがとうございます。その通りのミスでした

74 名前:デフォルトの名無しさん :03/05/17 17:51
>>68
警告だけなのに実行できないの?
エラーが混じってない?

75 名前:68 :03/05/17 18:00
デバッグだと警告もエラーもゼロで余裕で通ります。
リリースだと、インライン関数が一度も使われませんでした。
とか意味不明な関数のエラーが百個位でる(警告レベル4の場合)


76 名前:(;´Д`) :03/05/17 18:14
>>68
どうせコンパイルオプションがおかしいんだろ。
プロジェクトを作り直せ。

77 名前:デフォルトの名無しさん :03/05/17 18:23
Win32アプリでメモ帳を作成中ですが、(CreateWindowのEDIT...で)
右クリックでメニューが出てくるのですが、
このメニューに機能追加ってできますか?

78 名前:58 :03/05/17 23:29
>>77
出来る。(つーか実現できないことはほとんどない気がするが)

>>62
SDK自体は、>>63氏が語ってくれた通りです。
ラジオボタンをマニュアルで作成すると、コードで全て動きを記述しなければなりません。
コード量が増しますが、”そういう”ラジオボタンの管理が非常に楽になります。
動きそのものを記述しなければなりませんが、オートでは実現できない不可思議な動きも作り出せます。

79 名前:デフォルトの名無しさん :03/05/18 01:54
SPY++のソースコードを参考にしたいのですが、MSDNに付属してないのですか?
みつからないです・・・。

80 名前:デフォルトの名無しさん :03/05/18 02:36
ソースコードつける馬鹿がどこにいる。

81 名前:デフォルトの名無しさん :03/05/18 10:49
Visual C++.net (VS2002) のエディタで
クラス名::メソッド名 と書いてあるところにカーソルを持っていくと、指のマークになって
クリックするとURLと勘違いしたのか、file::クラス名 なんていうファイルはありませんと
言ってきます。
激しくうざいのでこの機能を切りたいのですが、メニューのどこにあるのかわかりません。

教えてくださると幸いです。

82 名前:デフォルトの名無しさん :03/05/18 10:51
>>81
.NETはスレちがい

83 名前:デフォルトの名無しさん :03/05/18 12:06
質問です。

画面上に表示されてるメニューの座標を取得する
方法は無いでしょうか?

84 名前:デフォルトの名無しさん :03/05/18 12:06
明日のオカズでも買ってこようかな。

http://ime.nu/ime.nu/www.net-de-dvd.com/

85 名前:(;´Д`) :03/05/18 12:28
>>82
baka baka baka

86 名前:デフォルトの名無しさん :03/05/18 13:26
ファイルファイアログを開かないで、
特定のファイルの名前を変える方法ってどうやるんでしょうか?

今、多数のファイルをある規則に従ってリネームするプログラムを
作ろうと考えています。


87 名前:デフォルトの名無しさん :03/05/18 13:42
別ファイルネームでコピー

88 名前:名無し@沢村 :03/05/18 13:51
>>86
MoveFile()

89 名前:デフォルトの名無しさん :03/05/18 14:18
>>82
お前はすれ違い。

90 名前:デフォルトの名無しさん :03/05/18 15:17
netでのdiffの取り方はどうやるんですか。

91 名前:デフォルトの名無しさん :03/05/18 16:01
>90
>82

92 名前:デフォルトの名無しさん :03/05/18 16:02
フリーのdiffツール使えばいいのに

93 名前:86 :03/05/18 16:25
>>88
MoveFileを検索したところ、どうしても元になっているクラスが
見つかりません。しかもMSDNで見れないところがあるし。。。
借りた物だからMSDNを再インストールできないし。。。

すみません。MoveFileは何のクラスのメンバか教えていただけないでしょうか?
m(__)m

94 名前:デフォルトの名無しさん :03/05/18 16:31
>>93
http://www.google.com/search?num=50&lr=lang_ja&q=movefile()
なぜ検索しない?


95 名前:86 :03/05/18 17:13
>>94
すみません。m(__)m
できました。ありがとうございます。


96 名前:デフォルトの名無しさん :03/05/18 18:28
常時接続ならMSDN OnlineとGoogle(wも併用すべし

97 名前:デフォルトの名無しさん :03/05/18 19:32
ベクターワークスを使っていて、ある操作(編集→すべてを選択、加工→合成)で必ず、Microsoft VisualC++ Runtime Library RuntimeError!
abnormalprogramtermination と表示されOKするとそのアプリが強制終了になってしまします。
そのときは OK しかクリックできません。

98 名前:デフォルトの名無しさん :03/05/18 19:45
>>97
それで?

99 名前:デフォルトの名無しさん :03/05/18 20:05
借り物は違法です

100 名前:デフォルトの名無しさん :03/05/18 20:22
>>99
そのとほり!
何で借りたものをコピーしなかったのだ?

101 名前:デフォルトの名無しさん :03/05/18 20:32
>>100
ツマラソ

102 名前:デフォルトの名無しさん :03/05/18 21:25
>>86
割れ厨はマジでシネ。

103 名前:デフォルトの名無しさん :03/05/18 21:44
間違えてるし

104 名前:デフォルトの名無しさん :03/05/18 21:46
>>97
それはこのスレの誰かがベクターワークスを作ってて、バグ報告したつもりか?

105 名前:デフォルトの名無しさん :03/05/18 22:59
もまいら教えてくさい!!
ネットで落としたサンプルをコンパイルしたところ(VC6.0Pro)
リンクエラー「ファイル "mfc42ud.lib" を開けません」が出ます。
設定がユニコードなのが問題みたいなのだが漏れのVCでは
ユニコードではコンパイルできないんでつか?



106 名前:デフォルトの名無しさん :03/05/19 07:37
>>103
(゚∀゚)ケタケタ

107 名前:デフォルトの名無しさん :03/05/19 10:51
>>105
  _, ._
( ゚ Д゚)  ・・・

108 名前:デフォルトの名無しさん :03/05/19 11:12
unsigned charに数値を代入してるのをデバッカで追っていたのですが
特定の数値でデバッカ上で見かけ0になってしまうようなのです。
ためしに実際にunsigned charの変数に256回インクリメントして
ファイルに吐かせてみたのですが問題は無いようなのです。(VC++.netとBCC55で確認)
VC++のデバッカを追ってみるとどうも128(0x80)ぐらいから怪しくなってきて
160(0xA0)でまた普通に表示されるように225(0xE1)あたりでまた表示
されないように253(0xFD)でまた表示されるようになってるようなのですが・・・。

当方S-JISの判定の為にデバッカで試しに文字列のビットを追ってたところで
気が付いたのですがこれはVCの設定などがおかしい所があるのでしょうか?
環境はWindowsXPSP1とVC++.netです。

109 名前:デフォルトの名無しさん :03/05/19 12:08
>>108
デバッグウィンドウの「変数」「ウォッチ」で確認できず。
Windows2000SP3 VC++6.0SP5

// test code
int main()
{
unsigned char uc = 0;

for( int i = 0; i < 256; i++ )
{
uc++; // set break-point here
}

return 0;
}

110 名前:108 :03/05/19 12:58
そのソースで症状確認できました。
http://sylphys.ddo.jp/upld2nd/pc/img-box/img20030519125645.jpg

何故だろう・・・。

111 名前:デフォルトの名無しさん :03/05/19 13:56
当方Win2KSP2、VC++.NETでも症状確認。原因は不明…
メモリ上には存在してるけど、ウォッチで追いかけることは出来ない…
おそらく設定云々ではないと思われ。

112 名前:デフォルトの名無しさん :03/05/19 14:42
>>108-111
VisualStudioのよく知られたバグですよ。
ttp://forums.belution.com/ja/vc/000/121/44s.shtml

113 名前:112 :03/05/19 14:45
あ、ちょっと語弊があるなスマソ。
VisualStudio.NETのバグ、というべきか。
(「.NET」って入れないと6.0とかも入っちゃうからね)

114 名前:108 :03/05/19 15:08
おおう・・・そうでしたか・・・。
とりあえずウォッチで書式指定してみたところちゃんと表示されるのを確認しました。
やれやれ・・・(ry。112さんどうもありがとうございました。

115 名前:デフォルトの名無しさん :03/05/19 17:38
>>112
MS叩き厨がウザいな、そこ…

116 名前:デフォルトの名無しさん :03/05/19 19:34
VC++にはプロパティがないようですがメンバ変数をパブリックにするべきなのでしょうか
それともSet〜、Get〜といったようなメソッドを作っておくべきでしょうか
はたまたそれ以外のナイスなやり方があるのでしょうか
それともひょっとしてプロパティ相当のものがあるのでしょうか
識者のみなさまがたよろしくお願いいたしますm(__)m

117 名前:_ :03/05/19 19:36
( ´Д`)/< 先生!!こんなのが有りますた。
http://togoshi.ginza.st/2ch/2ch05.html
http://www.togoshi.ginza.st/2ch/
http://www.togoshi.ginza.st/2ch/2ch03.html
http://togoshi.ginza.st/2ch/2ch02.html
http://www.togoshi.ginza.st/2ch/2ch08.html
http://togoshi.ginza.st/2ch/2ch06.html
http://www.togoshi.ginza.st/2ch/2ch10.html
http://togoshi.ginza.st/2ch/2ch04.html
http://www.togoshi.ginza.st/2ch/2ch07.html
http://togoshi.ginza.st/2ch/2ch01.html
http://www.togoshi.ginza.st/2ch/2ch09.html

118 名前:デフォルトの名無しさん :03/05/19 19:36
set,get

119 名前:デフォルトの名無しさん :03/05/19 19:37
friendとか

120 名前:デフォルトの名無しさん :03/05/19 19:37
=をオーバーロード

121 名前:デフォルトの名無しさん :03/05/19 19:57

>メンバ変数をパブリックにするべきなのでしょうか

これは「最も」しては行けないこと。

> VC++にはプロパティがないようですがメンバ変数
プロパティ==メンバ変数!=VBのプロパティ



122 名前:デフォルトの名無しさん :03/05/19 21:20
C++で、VBでいうLen関数やLenB関数に
相当する関数を教えてください。

123 名前:デフォルトの名無しさん :03/05/19 21:26
>>122
strlen


124 名前:デフォルトの名無しさん :03/05/19 21:57
>>123
どうもありがと。

125 名前:デフォルトの名無しさん :03/05/19 23:26
たとえば、1秒ごと20までの数字をカウントしてエディットボックスに表示させる
プログラムを作る場合以下のように作ってみました。でも うまくいきませんでした。
原因は何でしょうか?だれか教えてください!
for(i=0;i<20;i++){
m_edit1=i;
  UpdateData(false);
  Sleep(1000);

126 名前:デフォルトの名無しさん :03/05/19 23:29
キー入力待ちってどうすれば出来ますか?

127 名前:デフォルトの名無しさん :03/05/19 23:44
>>125
括弧は閉じたよね?

128 名前:デフォルトの名無しさん :03/05/19 23:47
127>もちろん閉じました!!一回づつ更新される予定が、更新されないんです!

129 名前:デフォルトの名無しさん :03/05/20 00:16
>>128
UpdateData(FALSE);
UpdateWindow();
Speep(1000);

ってのはどう?

130 名前:129 :03/05/20 00:22

もちろんSleepね

131 名前:デフォルトの名無しさん :03/05/20 01:06
すみません。
C++で、VBでいうReDimステートメントと同じ処理をする場合、
どうしたら良いでしょうか?

132 名前:名無し@沢村 :03/05/20 01:07
>>123
VBはUNICODEを使っている。
だから正しくはwcslenだな。

133 名前:デフォルトの名無しさん :03/05/20 01:08
>>131
newとdeleteを勉強する。

134 名前:デフォルトの名無しさん :03/05/20 01:10
>>129
凄いね。
InvalidataRectじゃ無理だったよ。
そんなやり方あったんだね。
(つーかその前にメインの関数内でSleep使う事自体が問題かもしれん)

135 名前:r :03/05/20 01:33
>>131
std::vectorとresizeかな。


136 名前:デフォルトの名無しさん :03/05/20 07:22
エディットボックス(edit1)に、00 1A CA 8D
の様に、ファイルのバイナリを表示させ、
もう一つのエディットボックス(edit2)に
8DCA1A00 hex
の十進数になおした整数を表示させたいのですが、

HANDLE afile;
BYTE buff[4];
CString buf;
CString path;
DWORD dw;
m_edit3.GetWindowText(path); ←これはパス所得用エディットボックスです。
afile = CreateFile(path,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(afile == INVALID_HANDLE_VALUE){
MessageBox("ファイルがオープンできません", "ファイルのオープンの失敗", MB_OK);
}
SetFilePointer(afile, 0, NULL, FILE_BEGIN);
memset(buff, 0, sizeof(buff));
ReadFile(afile, &buff, sizeof(buff),&dw,NULL);

ここの処理がわかりません…

m_edit1.SetWindowText(なにか);
m_edit2.SetWindowText(なにか);

どうしたらいいでしょうか…

137 名前:デフォルトの名無しさん :03/05/20 11:19
>>136
Cstring::Formatとか使えば?

138 名前:デフォルトの名無しさん :03/05/20 12:08
visualc++.netでエディタを外部エディタにする方法教えて下さい。
ツール→オプション→テキストエディタ見たけど外部エディタにする
項目なかった。notepadしか使わせないのがMSの方針なんですか?

139 名前:デフォルトの名無しさん :03/05/20 13:34
VC++.netで書いてるんですが、
class AとBの宣言をa.hとb.hに分けて書いて、
#include "b.h"
class A{
private:
B *b;
}
と書くと

error C2143: 構文エラー : ';' が '*' の前にありません。

と出ます。

#include "b.h"
class A{
private:
class B *b;
}
の場合大丈夫でした。
手元の本(独習C++)でこのように宣言されているところは見なかったんですが、
こう宣言して大丈夫なんでしょうか?

140 名前:139 :03/05/20 15:08
多分自己解決した。
class Aでclass Bのポインタのメンバのほかに
class Bでclass Aのポインタを引数とするメソッドを作ってた。

これってどうにかできない?

141 名前:デフォルトの名無しさん :03/05/20 15:37
} の後ろに ; が無い

142 名前:デフォルトの名無しさん :03/05/20 17:06
>>139
似たような方法で

//a.h
class B;
class A
{
private:
    B *b;
};

と宣言しておいて、cppファイルで
#include "a.h"  // classAの宣言
#include "b.h"  // classBの宣言
:
:

その場で必ずクラスを定義する必要はないのよ。

143 名前:デフォルトの名無しさん :03/05/20 17:07
-------------------
#include "b.h"
class A{
private:
B *b;
};

--------------------
class A;
class B{
private:
A *a;
};


144 名前:139 :03/05/20 17:31
>>141
スマソ、それは単純にコピーし忘れだった。

>>142,>>143
そんな方法があるのね。
とりあえずclass A,Bの両側でもう片方の宣言を書きますた。
ありがとう。

145 名前:デフォルトの名無しさん :03/05/20 19:53
>>137

buf.Format(CString(buff));
a = atoi(buf);
m_edit1.SetWindowText(CString(a));

これだとなにも表示されず、

m_edit2.SetWindowText(CString(buff));

これだとへんな文字列が表示されてしまいます…

SetWindowTextはCStringでしか使えないのがいけないのでしょうか?…

146 名前:デフォルトの名無しさん :03/05/20 20:04
_edit2.SetWindowText(CString(buff));

m_edit1.SetWindowText(CString(a));
も、

CString(a)やCString(buff)の実体が無いため。



147 名前:デフォルトの名無しさん :03/05/20 20:10
int a=12;
CString tmp;
tmp.Format("%d",a);
m_edit.SetWindowText(tmp); //m_edit.SetWindowText(&tmp)かも。どっちか忘れた。

とか書けば、わかるかな?



148 名前:デフォルトの名無しさん :03/05/20 20:54
MSDNってダウンロードできないんですか?

149 名前:デフォルトの名無しさん :03/05/20 21:21
>>147
大変参考になります^^

えっとそのint a =12
をあるファイルのバイナリ
12 2c a1 5a としますよね、
その 122ca15a hex を、整数にしたものをint a としたいのですが…
どのように変更したらよいでしょうか??

150 名前:デフォルトの名無しさん :03/05/20 21:34
>>149
シフトしながらORすれば良いんじゃない?

151 名前:デフォルトの名無しさん :03/05/20 22:48
>>129 どうも有難う御座います!!出来ました。しかし何ゆえ、UpdateWindow();
だと、できるんでしょうか??


152 名前:デフォルトの名無しさん :03/05/20 23:27
>>151
ようわからんけどウィンドウの更新してるからじゃなかろうか?
UpdateData()後に他のウィンドウで隠してもう再度表示させると表示が更新されたり。

153 名前:デフォルトの名無しさん :03/05/20 23:37
>>151
まず、エディットボックスの値は確かに変わっていたけど、
再描画がforループ中に行われないので、1秒毎に表示されなかった。
forループが終了した時点で、やっと再描画されるので、いきなり20の表示・・・

で、1秒毎に強制的に再描画させれば良い訳で、
UpdateWindow()はその場で再描画を強制する(直接WM_PAINTメッセージを送る)関数。
VBで言うRefreshメソッドみたいなもの。

ちなみにInvalidateRectだと、その場でWM_PAINTが送られる訳では無いので、駄目みたい。

154 名前:デフォルトの名無しさん :03/05/21 00:01
>>149
教えて君は帰れボケ

155 名前:デフォルトの名無しさん :03/05/21 00:12
>>153
なるほど!!有難う御座います!
っていうか、人に聞く前に
関数自分で調べろよってな感じですよね.
すみませんでした.

156 名前:真の教えて君 :03/05/21 00:14
>>154
わからんねーなら騙ってろ。

157 名前:デフォルトの名無しさん :03/05/21 00:23
たまにDel厨が荒すね

158 名前:デフォルトの名無しさん :03/05/21 00:27
>>157
漏れは某島社員かその信者と睨んでいますが。

159 名前:デフォルトの名無しさん :03/05/21 10:46
>>158
似たようなもんでしょw

160 名前:デフォルトの名無しさん :03/05/21 11:37
>>150
いろいろ考えてみたんですが…、
BYTE buff[4];
ReadFile(afile, &buff, sizeof(buff),&dw,NULL);

ここの時点で間違ってるような気がしてきました、、

WORDとかいろんなものに換えてみたんですが、
つまってしまいました…。
バイナリを読みこむにはどの宣言でバッファをとるのが最適でしょうか…?

161 名前:デフォルトの名無しさん :03/05/21 12:23
>>160
粘着教えて君キタ━━━━━(゚∀゚)━━━━━ !!!
いい加減Cスレにでも逝ったら?(プ

162 名前:デフォルトの名無しさん :03/05/21 14:32
つかぬ事をお伺いいたします.
先日初めてVC++.NETを導入したのですが、6.0のころと
えらく変わっているので難儀しています.

そこで、ウィンドウを複数、並べて表示できるようになるような
設定などありましたら教えてください.
全画面表示もしくは2画面分割というのはどうも見ずらいんで。

おねがいいたしますm(__)m

163 名前:162 :03/05/21 16:07
失礼しました.

[ツール]→[オプション]→[環境]→[全般]→「MDI環境」
で、できました.お騒がせしました。

さらにそのうえ、板違いでしたね.
本当にすみませんでした.

164 名前:デフォルトの名無しさん :03/05/21 18:06
プログラミングを全くやったことのない初心者なんですが、
プログラマーになりたいのでVisual C++を勉強しようと思いました。
それで、これを入手しようとマイクロソフトのHPにいったんですが値段が分かりませんでした。
あんな、分かりにくいHPは初めてです。
なので教えてください。これ価格はいくらなんでしょうか?

165 名前:デフォルトの名無しさん :03/05/21 18:26
>>164
価格.com
http://www.kakaku.com/sku/price/030000.htm
ちなみに、今VC++6.0買うよりVC++.netの方がいいかもね
学生だったら、アカデミーパックもある。
つーか、いきなり金かけて開発環境買うより無料のコンパイラとか
つかってみてプログラミングに慣れてくれ。


166 名前:デフォルトの名無しさん :03/05/21 19:57
>>165
ありがとうございます。
Visual C++の無料のコンパイラなんてあるんですか?

167 名前:デフォルトの名無しさん :03/05/21 20:00
>>165
VisialC++のは無くて、ボーランドとかGCCなどのC/C++コンパイラ等。

168 名前:デフォルトの名無しさん :03/05/21 20:07
>>164
Windowsアプリ作るんならその「分かりにくいHP」とつきあわなきゃならん。
まぁ、がんばってくれ

169 名前:デフォルトの名無しさん :03/05/21 20:22
>>164
Borland C++Compiler
http://www.borland.co.jp/cppbuilder/freecompiler/



170 名前:デフォルトの名無しさん :03/05/21 20:30
>>169
ありがとうございます。
それ入れてみました。
このスレにはお世話になりそうなので今後もよろしくお願いします。

171 名前:デフォルトの名無しさん :03/05/21 21:05
オープン価格なら書いてなくて当然だと思うが

172 名前:デフォルトの名無しさん :03/05/21 21:22
>>170
このスレVisual C++だから、お世話できないよ。

173 名前:デフォルトの名無しさん :03/05/21 21:42
>>171
製品情報ページに推定価格が書いてあったと思うが…

174 名前:デフォルトの名無しさん :03/05/21 22:05
つーか、>>164はプログラマには成れん!
あきらめろ。


175 名前:デフォルトの名無しさん :03/05/21 22:13
>>174
うるせーばか。
氏ね。

176 名前:デフォルトの名無しさん :03/05/21 22:53
>>174
オマエモナー

177 名前:デフォルトの名無しさん :03/05/21 22:54
まー初心者スレだからな

178 名前:デフォルトの名無しさん :03/05/22 00:03
>>176 AAは?

>>164
オフィスとか売っている店に行って店員に聞けば?

179 名前:デフォルトの名無しさん :03/05/22 00:08
>>178
通販サイトで値段を見てみるのも可だな
というかこのくらいの情報収集ができないってのは…んー…

180 名前:デフォルトの名無しさん :03/05/22 02:13
すみませんが、
WindowsXPのVisual StyleのLunaインターフェイスの
コントロールの外観(ボタン枠等)を
Picture Control等に直接描画する方法は
ありませんでしょうか?

181 名前:山崎渉 :03/05/22 04:24
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

182 名前:デフォルトの名無しさん :03/05/22 05:58
今回、MFCを使わずに自作でブラウザを作成しているのですが、新しいウィンドウが
立ち上がるようなリンクをクリックしたときに新規でウィンドウが立ち上がるのでは
なく、自信のウィンドウに開きたいのですが、どうすれば良いでしょうか?
あと一歩だと思うのですが、URLが正しく取得できないみたいなのです。
足りない処理でもあるのでしょうか?

// ppDispからIWebBrowser2オブジェクト取得
CComQIPtr<IWebBrowser2> spNewWB;
CComPtr<IUnknown> punkIE;
AtlAxGetControl(hwndIE, &punkIE);
spNewWB = punkIE;
spNewWB->get_Application(ppDisp);

BSTR bstrURL;
// URLを取得
spNewWB->get_LocationURL(&bstrURL);

CComVariant vempty, vUrl(bstrURL);
// 自身のウィンドウにURLを送信し直す
pWB2->Navigate2 (&vUrl, &vempty, &vempty, &vempty, &vempty );
// BSTR 用のメモリの解放
::SysFreeString(bstrURL);




183 名前:デフォルトの名無しさん :03/05/22 06:57
getcher()が使えるヘッダーってなんでしたっけ?

184 名前:bloom :03/05/22 07:11
http://homepage.mac.com/ayaya16/

185 名前:デフォルトの名無しさん :03/05/22 07:14
女子高校生監禁コンクリート詰め事件!!!!

共産党幹部宅で行われた鬼畜行為(裁判で明らかになってます)(監禁41日間の内容)

・オイルを両大腿、膝、すねにたらして着火する
・熱がって火を消そうとすると手にもオイルをかけて着火、火が消えるとまた点火する
・性器に異物を入れて弄ぶ
・自分の尿を飲ます
・性器にライターを入れて着火する(この行為によって何度も気絶し、髪の毛が抜けていったという)
・性器を灰皿代わりにする
・性器にオロナミンCの瓶を入れる
・お尻の穴に花火を突っ込む
・性器に強引に直径3Cmの鉄の棒を突っ込んだり抜いたりして性器を破壊する
・頬が鼻の高さを超えるまで腫れ上がり、目の位置が陥没して分からないほどになるまで暴行
・歌謡曲を流して、歌詞にあわせて脇腹に思いっきりパンチをいれる
・痛さをこらえるので口が変なふうに歪むのを見て面白がる
・犯人2人の真ん中に立たせ、左右から肩や顔に回し蹴りを数発入れる
・顔にろうそくをたらす
・眉間に短くなった火のついたろうそくを立てる
・6kgの鉄アレイを腹に落とす
・鉄アレイで大腿や顔面を殴る
・逃げないようにガムテープで全身をぐるぐるまきにする

コンクリート詰め事件で検索すればわかります。

アンチが騒いでます(w
http://qb.2ch.net/test/read.cgi/accuse/1052793624/l50

186 名前:デフォルトの名無しさん :03/05/22 07:28
simpleXというライブラリで
#include<simpleX.h>
void StartUp()
{
}
void MainLoop()
{
Clear();
Text(0,0,"Hello World");
}
というプログラムを書いてみたんですが
ライブラリの方にエラーが50個ぐらいでちゃって困ってます
どうしてですか?

187 名前:デフォルトの名無しさん :03/05/22 08:44
>>186
エ ラ ー メ ッ セ  ー ジ く ら い 自 分 で 嫁 !

188 名前:デフォルトの名無しさん :03/05/22 09:26
>>187
でもエラーはsimpleX.hのほうだけで
"="の前に")"がないとかそういう感じの
文法ミス的なエラーばっかりなんですけど
俺c++.net初心者だから設定ミスってるのかも?
どうしたらいいんですか?

189 名前:デフォルトの名無しさん :03/05/22 09:29
>>188
どんなエラーメッセージが出てるか分からんのに答えられるはずがないだろボケ

190 名前:デフォルトの名無しさん :03/05/22 10:11
ダイアログベースのアプリで
ShowWindow(SW_HIDE)したときのような
ウィンドウを表示しない状態で起動させるには
どうすればよいのでしょうか

191 名前:名前は開発中のものです。 :03/05/22 11:15
>>188
じゃあ文法ミスなんだろ!
設定をどうミスったら文法ミスになるんだ

192 名前:190 :03/05/22 12:52
MFCの方に逝ってきます
|彡サッ

193 名前:デフォルトの名無しさん :03/05/22 13:05
>>190
WS_VISIBLEをつけない
つーかこれはAPIだっつーの

194 名前:デフォルトの名無しさん :03/05/22 14:41
>>193
引数にHWNDが無いからMFCだろ

195 名前:190 :03/05/22 14:47
MFCなので専用スレの方に書こうと思ってたのですが
なぜか間違えてしまいました(´へ`)
しつれいしました


196 名前:デフォルトの名無しさん :03/05/22 19:15
関数で printf( と入力すると、どんな引数が必要か型がでますが、
pow等は複数タイプがありますよね。powはdouble(double,double)と
int(int,int)と、後分からないのがひとつあります。どのタイプであるか
を指定するにはどうすればよいのですか?教えてください。

197 名前:デフォルトの名無しさん :03/05/22 19:28
powってのは俺は知らんけどさ、ヘルプ見れば載ってるんじゃないですか?

198 名前:デフォルトの名無しさん :03/05/22 20:10
>>196
どのタイプって、引数の型を合わせればいいんでない?

199 名前:デフォルトの名無しさん :03/05/22 20:13
>>196
それでよければよいのですが。一応全てにキャストを与えています。

200 名前:デフォルトの名無しさん :03/05/22 20:21
>>197
ちょっと見てみたけど、doubleの鹿乗ってないです。もうちょっと調べてみます。

201 名前:デフォルトの名無しさん :03/05/22 20:21
double(double,double)以外はSTLでしょう。
int(int,int) ってあるの?

202 名前:196 :03/05/22 20:47
>>201 
もう一度見てみるとありませんでした。見間違えたのだと思います。
また、3パターンではなく、6パターンありました。atoi,atofみたいに
名前を変えてくれればいいのに。以下のでintで使えそうなのを教えてください。
int pow(const int (__cdecl *_CMPLX)(_Ty))
int pow(const _Ty &_X, const int(__cdecl *_CMPLX)(_Ty))
valarray <_Ty> pow(const _Ty &_X, const valarray <_Ty> &_Y)
valarray <_Ty> pow(const valarray <_Ty> &_X, const _Ty &_Y)
valarray <_Ty> pow(const valarray <_Ty> &_X, const valarray <_Ty> &_Y)
double pow(double,double)

203 名前:デフォルトの名無しさん :03/05/22 20:47
ネット上で自分の分身キャラ「アバター」を作って楽しくコミュニケーション
無料登録すると、もれなく商品券とメールアドレスが貰えます!!
http://f15.aaacafe.ne.jp/~suikas/cafe.html

204 名前:デフォルトの名無しさん :03/05/22 21:14
しつもんいいでつか?
VC6でMFCです。ちょくちょく使う関数を2、3個書いたヘッダファイルを使おうと思って
stdafxにインクルードしたら、

1つ以上の複数回定義されているシンボルが見つかりました
ってエラーでうまく行きません。
直接使うcppファイルでインクルードすれば良いんだけど
「・・・かつあまり変更されないプロジェクト専用のインクルード ファイルを記述します。」
とかstdafxに書いているんで、ここにインクルードしたいんですが無理ですか?

205 名前:デフォルトの名無しさん :03/05/22 21:20
>>204
ヘッダファイルに↓のを記述しる

例 sample.hの場合
------------------------------
#ifndef _sample_h_
#define _sample_h_
#pragma once

... // ここにコードを記述

#endif
------------------------------

206 名前:デフォルトの名無しさん :03/05/22 22:08
>>205
どうもです。でもやっぱりダメですた。

ファイルの内容は、これだけにしました。

common.h

#ifndef _COMMON_H_
#define _COMMON_H_

#pragma once

extern void msgbox(const char *fmt,...);

void msgbox(const char *fmt,...)
{
char buf[1024];
va_list args;
va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);

MessageBox(NULL, buf, "Message", MB_OK | MB_TASKMODAL | MB_TOPMOST);
}

#endif

何ででしょう?


207 名前:デフォルトの名無しさん :03/05/22 22:13
>>206
関数本体書いちゃ駄目よ

208 名前:デフォルトの名無しさん :03/05/22 22:18
>>206
お前そのヘッダファイルを複数のソースファイルでインクルードしてないか ?
もしそうなら、msgbox() が複数できちゃうから怒られて当然だぞ。

> common.h
> #ifndef _COMMON_H_
> #define _COMMON_H_
> #pragma once
> extern void msgbox(const char *fmt,...);
> #endif

だけにして、

> void msgbox(const char *fmt,...)
> {
> char buf[1024];
> va_list args;
> va_start(args, fmt);
> vsprintf(buf, fmt, args);
> va_end(args);
> MessageBox(NULL, buf, "Message", MB_OK | MB_TASKMODAL | MB_TOPMOST);
> }

は、どっかのソースファイルに入れとけ。(もしくは common.c とかを作れ。)

209 名前:デフォルトの名無しさん :03/05/22 22:26
>196
>atoi,atofみたいに名前を変えてくれればいいのに
そういう使い分けにいちいち気を回さなくていいように
多重定義してあるのだと思われ。
あたえられた引数をみて仕分けるのはコンパイラのお仕事。

で、標準ライブラリ的にはdouble pow(double,dounle)だけなんで
通常の用途ならキャストしながらこれを使う方向でどうか。

210 名前:デフォルトの名無しさん :03/05/22 22:37
>>208
はい。今全く同じようにしてやってみた所でした。
作ってる物は、練習用に小さなダイアログベースです。
実際の呼び出しをコメントアウトすればエラーは出ません。問題なく動いています。
もちろんほかのファイルからはインクルードしていません。

common.h
#ifndef _COMMON_H_
#define _COMMON_H_
#pragma once

extern void msgbox(const char *fmt,...);

#endif
--------
common.cpp
#include "common.h"

void msgbox(const char *fmt,...)
{
 char buf[1024];
 va_list args;
 va_start(args, fmt);
 vsprintf(buf, fmt, args);
 va_end(args);
 MessageBox(NULL, buf, "Message", MB_OK | MB_TASKMODAL | MB_TOPMOST);
}
こういう風にしてみましたが、ダメでした。

211 名前:デフォルトの名無しさん :03/05/22 22:40
すみません。

  CDC cdcTarget;
  HBITMAP hBitmap; // 仮に既にビットマップ ハンドルが設定されてるとします
  HBITMAP hBitmap2; // CDCから取得されたビットマップ ハンドル

  // CDCにビットマップを設定
  CBitmap* cBitmap = CBitmap::FromHandle( hBitmap );
  cdcTarget.CreateCompatibleDC( NULL );
  cdcTarget.SelectObject( &cbmpTarget );

  // CDCからビットマップ ハンドルを取得
  hBitmap2 = (HBITMAP)cdcTarget.GetCurrentBitmap();

HBITMAPをデバイス コンテキスト(CDC)に描画して、
再びHBITMAPとして受け取ろうとしたいのですが
うまくいきません。どうしたら良いでしょうか?

212 名前:デフォルトの名無しさん :03/05/22 22:44
>>211 (補足)
すみません。10行目のcbmpTargetは
cBitmap です。

213 名前:デフォルトの名無しさん :03/05/22 22:48
>>209
分かりました。ありがとうございました。

214 名前:デフォルトの名無しさん :03/05/22 22:52
>>210
Cスレ池。っと言いたいがマジレス。
ヘッダーファイルの extern はいらない。
非常にお勧めできないが、

// common.h

inline void msgbox(const char *fmt,...)
{
 char buf[1024];
 va_list args;
 va_start(args, fmt);
 vsprintf(buf, fmt, args);
 va_end(args);
 MessageBox(NULL, buf, "Message", MB_OK | MB_TASKMODAL | MB_TOPMOST);
}

とすればコンパイルは通ると思われ。

215 名前:デフォルトの名無しさん :03/05/22 22:58
>>210
> 実際の呼び出しをコメントアウトすればエラーは出ません。
??? わけわからんのだが...。
呼び出し側も晒してくれ。

>>214
アフォですか ? それやるなら...
static void msgbox()
だろ。もちろんお勧めしないけど。

216 名前:デフォルトの名無しさん :03/05/22 23:06
>>210
ああ、あれだ、MFCでしょ?
MFCでは勝手に外部からc, cppファイルをプロジェクトに追加しても
エラーになって通らないはず
(おそらく通す方法はあるだろうけれど・・・)

で、方法だがワークスペースウィンドウの下に
Class View, Resource View, File Viewのボタンがあるだろう?

そこでClass Viewを押すと
XXX クラス(XXXはプロジェクト名)というのがあるから
そこを右クリックして
『クラスの新規作成』を押してh, cppファイルを作成する

・クラスの種類を『Generic』にして作成すること
・クラス名は好きなもので
そんでOKボタンを押すとh, cppが作成されるから
そのファイルにさっきのコードを記述する


217 名前:デフォルトの名無しさん :03/05/22 23:06
>>214
通りました!どうもありがとう。

でも、オススメされてないので、釈然としないです・・(´・ω・`)

218 名前:デフォルトの名無しさん :03/05/22 23:09
MFCやるならC++でやる方がいいかも

h, cppには自動的にそれぞれ
#ifndef _COMMON_H_
#define _COMMON_H_
#pragma once

#include "common.h"
がついてるからこれらは記述しなくていいと思う

--------
common.h

extern void msgbox(const char *fmt,...);

--------
common.cpp

void msgbox(const char *fmt,...)
{
 char buf[1024];
 va_list args;
 va_start(args, fmt);
 vsprintf(buf, fmt, args);
 va_end(args);
 MessageBox(NULL, buf, "Message", MB_OK | MB_TASKMODAL | MB_TOPMOST);
}
--------


219 名前:210 :03/05/22 23:19
>>215
えっと、クラスウィザードで作ったメンバ関数から
msgbox("hoge");
って、呼び出しているのをコメントアウトするとエラーは、出ることなく通ります。

>>216
>>MFCでは勝手に外部からc, cppファイルをプロジェクトに追加しても
>>エラーになって通らないはず

そうだったんですか。
クラスを作ればたぶん行くのかな?と思ってたけど、
いちいちクラスを宣言するのが、めんどくさそうなのでやろうと思いつつやってませんでした。
すみません。やってみます。

>>218
ああ、やはりこういう風にちゃんとクラスウィザードを使って(使わなくてもイイ?)
クラスを作って使わないとダメなんですね。めんどくさがってちゃダメだ。
どうもありがとう。

220 名前:デフォルトの名無しさん :03/05/23 01:14
めんどくさいと思ったらMFCを捨てよう(w

221 名前:名無し@沢村 :03/05/23 03:22
>>215 悲惨だな

222 名前:デフォルトの名無しさん :03/05/23 07:05
すみません。
COLORMAP構造体などを配列で宣言すると
実行中に、
「Run-Time Check Failure #2 - Stack around the variable 'cmpX' was corrupted.」
というエラー メッセージが表示されて中断してしまいます。
このメッセージの意味と解決策を
教えていただけないでしょうか?
スタックが不足しているのでしょうか?

223 名前:デフォルトの名無しさん :03/05/23 12:05
ウインドウの指定した領域をBITMAPとして保存したいのですが
できるのでしょうか?

224 名前:デフォルトの名無しさん :03/05/23 12:45
>>223
検索くらい汁!
一発で出てきたぞヴォケ

225 名前:デフォルトの名無しさん :03/05/24 00:27
>>222
英語勉強しろ。
それすらできないなら、インターネット翻訳とか使え。

「Runはチェック失敗#2の時間を計ります。可変「cmpX」のまわりのスタックは悪くなりました。」

ということだ by Excite翻訳

226 名前:デフォルトの名無しさん :03/05/24 00:27
>>221
お前がか ?

227 名前:デフォルトの名無しさん :03/05/24 01:49
>>225
222じゃないがそれでは湧けワカメ

228 名前:デフォルトの名無しさん :03/05/24 02:51
>>222
ココのスレは英語の翻訳スレではなく、あくまでVC++の質問(初心者も可)
なんだな、コレが。
ソースの一部分抜粋で、分からない所があるとかなら話は分かるが…

229 名前:デフォルトの名無しさん :03/05/24 10:29
>>227
悪いけどマジで言ってるの ?
>>225 は半分冗談だけど、元の英文見てわからなければ、C/C++ プログラマやめた方がいいと思うぞ。

もっとメモリ管理のちゃんとした言語使え。

230 名前:デフォルトの名無しさん :03/05/24 13:13
>>229
すまん、私も分からない…。
ソース見ればたぶんなんでエラー出てるのか分かるけれど。

もしかして
COLORMAP cm[16];
...
cm[16].from = 0x00ff00; // ここで上記のエラーがでる
ということか?



222よ、とりあえずソース書け。


231 名前:デフォルトの名無しさん :03/05/24 13:16
>>227タンが憐れ

232 名前:デフォルトの名無しさん :03/05/24 14:57
CString の初期化の方法を教えてください!!
VCだとクラスの宣言内で定義をしますが、例えば
CString cs_name[];
とか。
でも、ここで初期化をしようとすると
CString cs_name[]={"hana","bara","himawari"};
このようにするとエラーが出てしまいます。
どうすればよいでしょうか?
教えていただけるとうれしいです。

233 名前:デフォルトの名無しさん :03/05/24 14:58
>>1-1000

なにお前らガベージコレクトしてんだよ。
ガベージコレクトすんなよ。

234 名前:デフォルトの名無しさん :03/05/24 15:37
CString cs_name[]={"hana","bara","himawari"};

今VC++でやってみたが普通に通りますが何か?
ver 6 sp5ね

235 名前:デフォルトの名無しさん :03/05/24 15:41
ああ、クラス内ね
CTest{
CTest(){ cs_name[0] = "hana"; cs_name[1] = "bara"; cs_name[2] = "himawari"; }
...
CString cs_name[3];
};
じゃ駄目か?


236 名前:デフォルトの名無しさん :03/05/24 15:42
234>>
publicとかの場所で宣言するとエラーがでるんですけど。。。
class CALT_1Dlg : public CDialog
{
// 構築
public:
CALT_1Dlg();
CALT_1Dlg(CWnd* pParent = NULL);// 標準のコンストラクタ

CString cs_setthreshold[]={"10%","20%","30%"};
};

こんな感じで宣言したらなんかエラーが出てしまったんですよ ↓こんな感じです。
ALT_1Dlg.cpp
c:\windows\デスクトップ\コピー (2) 〜 alt copy 5.10\alt_1dlg.h(27) : error C2059: 構文エラー : '{'
c:\windows\デスクトップ\コピー (2) 〜 alt copy 5.10\alt_1dlg.h(27) : error C2334: '{' の前に予期しないトークンがありました。関数の本体は無視されます
c:\windows\デスクトップ\コピー (2) 〜 alt copy 5.10\alt_1dlg.h(78) : warning C4520: 'CALT_1Dlg' : 複数のデフォルトのコンストラクタが指定されています。
cl.exe の実行エラー

ALT_1.exe - エラー 2、警告 1

何故なんでしょう????




237 名前:デフォルトの名無しさん :03/05/24 15:49
宣言で[]は使えないはず・・・。

const char* const str[] = {
 "abc", "def", "ghi",
};
const int strcount = sizeof(str) / sizeof(*str);

CTest{
 CTest(){
  for(int i = 0; i < strcount; ++i){
   cs[i] = str[i];
  }
 }

CString cs[strcount];
}

これで逝くと思うがどうか・・・。
動的にcs拡張したいならvectorを使うべし


238 名前:デフォルトの名無しさん :03/05/24 15:54
有難う御座います!とりあえず試してみます!!

239 名前:デフォルトの名無しさん :03/05/24 16:11
おい!天才ども!!
scanf で数値の入力(1〜100までの)をするときに、
文字を入力したときのエラーを出したいのだけども、
どーしたらいいか教えて下さい!雑魚ども!!

240 名前:デフォルトの名無しさん :03/05/24 16:14
すみません質問です。
WindowsXPスタイルを持つコントロールの外観(例えばボタン枠)を
Picture Controlなどに描画したいのですが、どうやら
DrawTheme***関数がそれらしきものだと
思ったのですが、その関数はVC++では使えませんでした。
それどころかリファレンスにも載っていませんでした。
それとも何かのヘッダーをインクルードすれば良いのでしょうか?

DrawTheme***関数について何かご存知の方がいらっしゃいましたら
教えてください。

241 名前:デフォルトの名無しさん :03/05/24 16:20
>>240
MSDNに載ってるが。

242 名前:デフォルトの名無しさん :03/05/24 16:25
235>> 有難う御座います!出来ましたvv
これって、もしかして、最初に定義しておいてコンストラクタで、初期化とかを行なった方が良いのでしょうか...?

243 名前:名無し@沢村 :03/05/24 16:29
>>239
AfxMessageBox(_T("ヌヒよ、1から100までの数値を入力しろ"));

244 名前:デフォルトの名無しさん :03/05/24 18:55
RECT構造体を返す関数
RECT foo();を
RECT構造体のポインタを引数とする関数bar()に引数として与えたら
bar(&foo());
「'&' に左辺値がありません」とエラーが出ました。
bccだとコンパイルできたのですが、VCだとなぜだめなのでつか?

245 名前:デフォルトの名無しさん :03/05/24 18:57
もしご存知の方がいたら教えてほしいんですが、
MicrosoftのWindows Windows XP Home/Professional
を開発したプロジェクトチームは、何人で構成されてたんでしょうか。

246 名前:デフォルトの名無しさん :03/05/24 20:00
( ゚д゚)ポカーン
245よ、たのむから今一度スレタイをよんでみてくれ。

247 名前:デフォルトの名無しさん :03/05/24 20:14
>>244
仕様です
使いたかったら↓

bar(&(RECT)foo());


248 名前:デフォルトの名無しさん :03/05/24 20:15
>>245
世界人口より少ないのは確実だ

249 名前:245 :03/05/24 20:22
>>248
ありがとうございます。
解決できました。

250 名前:デフォルトの名無しさん :03/05/24 20:37
248のどこに解決の糸口があったのだろう・・・


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