1 :
デフォルトの名無しさん :
02/09/03 01:49
ここの板はとてもためになるからいいですね。。 質問ですが、、、 IEベースのブラウザってどういうことなんでしょう? COMとかATLを使ってIEと同じような機能を持っているってことですか?
4 :
デフォルトの名無しさん :02/09/03 02:25
>>3 IEのコンポーネントで作ってるブラウザってことじゃない?
1 :タコ :02/06/08 19:00 タコの者です。 VC 6を買いました。 使い方を詳しく教えてください。 当方、N88BASIC, perl, バッチファイル, シェルスクリプト sed, awk程度はわかります。 本格的なプログラム経験はありません。 大至急わかりやすく、ていねいに教えてください。 わたしは、2chがどれだけ俺の役に立つか試しています。 いってみれば、おまえらが試されているというわけです。 俺を満足させるような、名スレッドになるよう おまえら一同がんばれや。
010get。
9 :
デフォルトの名無しさん :02/09/03 05:25
マクロ展開後のソースをみたいのですが、 どうしたらいいでしょうか?
10 :
デフォルトの名無しさん :02/09/03 06:05
>>9 オプションに/Eで標準出力に、/Pでファイルに書き出される。
例:cl /E preproc.c
現在、Win2000でアプリ作ってて、ログの書き出しを行おうとしているのですが、 コントロールパネル>管理ツール>イベントビューア の中に起動とかエラーのログを書き出したいんです。(ノートン安置ウィルスとかの起動ログとかが書き出されている場所です) どうやれば書き出せるんでしょう? マジでどこにも載ってないから鬱だ・・・情報キボン
12 :
デフォルトの名無しさん :02/09/03 15:44
いいプロジェクト名が思い浮かびません。半角英数で なるべく少ない次数でなにか良い案を下さい。 【キーワード】 整備/メンテナンス/帳票/印刷/出力
○字数 ×次数
>>12 そんな一般的なキーワードばかりじゃなあ。
system とか project で良いんじゃねーの?(w
>>12 projectSTIS
わかるだろうけど、「プロジェクト、整備、帳票、印刷、出力」 の 略
>>16 メンテナンスが抜けてるぞ
projectSMTIS だな
HTmlViewで再描画された時にスクロールバーの位置を一番下に設定するにはどうすればいいですか?
スクロールバーじゃないです スクロールバーの「つまみ」 あのつまみを一番下に設定したいのですが
>>14 >>16 >>17 ども、ありがとう。
MRPSにしました。
ご承知の通り「MaintenanceReportPrintSystem」の略。
さてと、やるか。
よろしくお願いします。 あるパスのファイルがオープンされているかを判別する方法 はどのように処理すれば良いのでしょうか? 切羽詰ってます。お願いします。m(_ _)m
テキストファイルから読んだ数字をatofなんかで値にして計算し、 その後、また文字にしてテキストファイルに出力したいです。 値→文字 の 演算子を教えてください
23 :
デフォルトの名無しさん :02/09/03 18:51
25 :
デフォルトの名無しさん :02/09/03 18:55
ファイルに書き出すのならfprintfの方がいいな。
27 :
デフォルトの名無しさん :02/09/03 19:09
ありがとうございますー。
30 :
デフォルトの名無しさん :02/09/04 11:46
CとかC++を少々かじっただけで、VC++6.0をこれから始めようっていう完全初心者なんですけど、 そんな人のための書籍とかって何が良いですか?(サイトでもいいです) 教えてください。お願いします。
31 :
デフォルトの名無しさん :02/09/04 13:35
>>30 俺が読んだ本では
翔泳社の「プログラミング学習シリーズ」が良かった
ただ俺の場合はCしか知らなくてGUIプログラミングの知識もまったく無かったから
このシリーズを選んだだけでC++理解してるなら無用の長物かな、3部構成だから読むの大変だし高い
void CMyDlg::OnButton1() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください int i; int j; i=5; j=10; printf("&i..%p\n",&i); } ってやったあと、アドレスはどこに見えるんでしょうか? 教えてください。おながいします
printf("&i..%p\n",&i); を TRACE("&i..%p\n",&i); としてデバッグ実行するとVCの下部ウィンドウに表示されます。
答えになってないぞ
>>35 printfを使った答えが見てみたいものだが。
使えねぇから代わりの方法を提示してんだろがよ
まあリダイレクトすれば見れるが素直に
>>34 に従え。
>>33 =35=37=教えてもらってるのに逆ギレ=厨房=逝ってよしなわけだが。
>>38 なら、最初に「使えねぇ」ってことを書いてから代案を出せや。
いきなり別の方法を出されたら、「printf はどうなった?」って思うだろうが。
っと。
42 :
デフォルトの名無しさん :02/09/04 19:19
みんななかよくけんかあげ
じゃあ
>>35 で
「printf はどうなった?」と書けよ。
っと。
44 :
デフォルトの名無しさん :02/09/04 20:17
33以降は僕じゃないです。 答えていただいてありがとう。 トリップつけようと思うんですが、どうやるのでしょう?
再起関数がわかりません。 本を読んでもわからないんです。 だれかわかりやすく教えてください。
>46 道程じゃないですよ。ごめんなさいね。 あと、わからないと言われても、 何がわからないのかわからないので説明できないですよ、多分。 ソースを読んで、ここがわからないと言ったほうが早いですよ、多分。
49 :
デフォルトの名無しさん :02/09/04 21:47
>46 再起関数 なにを起すのか、漏れのはもう起きないが・・・
51 :
デフォルトの名無しさん :02/09/05 00:02
Cでパチスロのゲームを作りたいと思ってます。 今頭の中で出来かけてるフローチャートは、 1.ランダムで数字を選ぶ 2.選出された数にそれぞれ、対応役を割り当てる。(多分岐型で、10ならベル、11リプレイ、など) ここまではいいんですが、画像とどう連動させれば全然わかりません。 やっぱり参考書を相当読まないと、ゲーム作りは難しいですか?
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { if(!SW1.CreateStatic(this,2,1)) return FALSE; if(!SW2.CreateStatic(&SW1,1,2,WS_CHILD|WS_VISIBLE|WS_BORDER,SW1.IdFromRowCol(0,0))) return FALSE; if(!SW2.CreateView(0,0,RUNTIME_CLASS(CRFView),CSize(300,140),pContext)) return FALSE; if(!SW2.CreateView(0,1,RUNTIME_CLASS(CHologramView),CSize(300,140),pContext)) return FALSE; if(!SW1.CreateView(1,0,RUNTIME_CLASS(COutputView),CSize(600,140),pContext)) return FALSE; return TRUE; } うまく表示されません。高さが0になっちゃいます。
>>51 とりあえずTextOutでも使ってろ。それで出来なきゃ一生出来ん。
54 :
デフォルトの名無しさん :02/09/05 00:21
>54 TextOutがわからんくらいならなんにも 画像どころじゃないよ。 ヘルプで見てみたら?
ああそうか、ここは初心者に教えるスレなのか(;´Д`)じゃあ仕方ないから教えてやる。
TextOutはWin32のAPI関数だ。Cでって書いてあるから勝手にWin32 APIで
やってるんだと仮定して
>>53 でそう書いたが、つまりそれぞれ分岐の中で
TextOut(hDC, x,y, "ベル", 4);とかやれば?と書いたつもり。
m=sprintf(buf,(const char*)k); とかで数kを文字列にしようとしたんですが、コンパイラにダメと いわれました。doubleの数を文字列にしたいんですが。 教えてくださいな。
58 :
デフォルトの名無しさん :02/09/05 01:41
>>56 すいません。
API関数ってなんですか?
Apprication Programming Interface VC++ ↓ MFC ↓ API DLL って漏れの教科書に書いてあるぞ
>>57 m = sprintf(buf, "%f", k);
「ハンドルされていない例外は○○にあります」 「OUTPUT.Cのパスを入力してください」 って出るんですが、これはどうしたらいいのでしょう? 教えてください。
SDIのview画面の背景色を変えるとき、OnEraseBkgnd 使いますが、 SDIでCFormViewを選択した場合、OnEraseBkgnd が出てきません。 どうやって変えるのでしょうか。
>>64 試さずに勘で答えるけどOnCtlColorなんてどうかな
Microsoft Visual Studio .NETって Windows XPのようなProduct Activationはあるの?
>>66 かなりスレ違いだと思うけどアカデミック版にはあったような
>>67 ありがとうございます。
しかしなぜアカデミック版だけ。。。
なんや!アカデミック版以外にはないんかい。
ちょっとおせえて。 VC++で作ったアプリから、別のアプリを起動して、その上で殺したい。 起動したアプリのプロセスハンドルっちゅうもんは、_spawnl関数で 起動させることで取ることができた。でも、他のプロセスを殺すっていう 関数が見つかんない。。。。。。殺すにしても、プロセスハンドルじゃなくて、 プロセスIDじゃないとダメだと思うんだけど。。。。 知ってる人、教えてください。
73番さん、ありがとうございます。 spawnlで取ったハンドルを渡すと、殺すことができました。感謝!!
マジでイベントログへの書き込みが分からないんですが、 具体的に何をすればいいのかサルでも分かる程度に教えてもらえませんか? ReportEvent とかで調べてもあまりヒットしない・・・ あとメッセージリソースって必須ですか?作り方が分からないのですが。
76 :
デフォルトの名無しさん :02/09/06 12:28
libファイルって、どうやって作るのでしょうか? VC6です。 libについてですが、 ・hとcppに分かれていれば、cppをlibに変換(コンパイル?)できる。 ・cppをlibにすると、人に渡すときでもソースを見られる心配がない。 この認識はあってますか?
77 :
デフォルトの名無しさん :02/09/06 13:10
78 :
デフォルトの名無しさん :02/09/06 13:11
.libと.objってどう違うんですか?
80 :
デフォルトの名無しさん :02/09/06 15:44
実行型ファイルのアイコンへ,ファイルをドラッグ&ドロップした時の 処理の実装方法がわかりません. どのように書けば良いのでしょうか?
>80 コマンドラインをMessageBoxで表示させる コード書いたことくらいあるでしょ? それを書いたexeに適当なファイルをドラッグドロップすると 第一引数にドラッグしたファイルのパスが格納されて exeが起動されるのがわかる。 あとは。。 もう大丈夫?
>>81 わかりました.
御教授ありがとうございます.
EditBoxを有効、無効にするにはどうしたらいいですか
>>83 有効 EnableWindow( TRUE );
無効 EnableWindow( FALSE );
>>84 できました。
・・・
・・・
・・・遅っ!!
質問です つい先日VisualC++6.0 Standard Editionってやつを買ったんです。 中にはブ厚い説明書とか入ってましたが、どういう事が書かれてるのか何が何やら さっぱり解りませんでした。 PCや他のプログラム言語もサッパリ解らない為、厨房丸出しで申し訳無いのですが 何か本を買うにしても高価ですし、何書いてるか理解出来なかっらどうしようもありません。 結果、ソフトがあるだけで何をすれば良いかわかりません。 俺みたいなアフォでも理解出来そうな本かページ教えて下さいませ。
>>87 本じゃないけど、猫でも分かるプログラミングと言うサイトに行ってみな!
>>90 何していいかわからんぐらいだぞ、これで充分だろ。
どもです VC++スーパービギナー編ですか。明日にでも本屋で探してみますね。 ビギナー過ぎて使えないって言われてる辺りが 初心者以前の素人にはとても頼もしく聞こえてしまうのが情けないです(´∀`;) 猫でも分かるプログラミングは見てみましたが、本を読んでから再度行ってみようと思います。
行列 2 3 4 [3 4 5] 4 5 6 について、ガウス消去したいのですが、 for (l=0;l<4;l++){ for (i=l+1;i<4;i++){ for (k=l;k<4;k++) a[i][k]=a[i][k]-a[i][k]*a[i][l]/a[l][l]; とすると、a[1][1]などが、1.NFD0000とかの値になりまする。 a[0][0],a[0][1],a[0][2],a[0][3]は正常な値が表示されるのになぜ? m(__)mおしえてください。
94 :
デフォルトの名無しさん :02/09/09 07:47
>>87 VC++初心者に非常にお勧めの本
プログラミング実習VC++入門編
小林健一郎著
ソフトバンク
2600円
95 :
デフォルトの名無しさん :02/09/09 13:22
いきなりVCの本を薦める人間じゃないだろ? VCの入門本読んでもわかったような気がするだけで少しも応用がきかないよ 遠回りに思えるかもしれないけどC++(わからなければCから)の勉強からはじめた方がいいよ
96 :
デフォルトの名無しさん :02/09/09 13:32
>>87 Visual C++は言語じゃないよ
C++でWindowsアプリを組むための開発環境だよ
97 :
デフォルトの名無しさん :02/09/09 13:33
VC++の本ってやっぱりMFCの紹介がメイン?
98 :
デフォルトの名無しさん :02/09/09 13:45
>>97 ほとんどそうだよね
まあMFC使ってこそのVCだからね
でも中にはSDKの解説から入ってるVC本もあるよ
100 :
デフォルトの名無しさん :02/09/09 21:23
SDKでWinのアーキテクチャー理解した人って、 その後もAPI叩くの? 腐っても楽なMFC?自作ライブラリ構築?
101 :
デフォルトの名無しさん :02/09/09 22:54
>>100 俺は基本だけ理解してさっさとMFCへ進んだよ
ていうか読んだ本がそういう構成だったので必然的にそうなった
SDKも面白そうではあるんだけど暇と根気がないとなかなか・・・
MFCでできなくてSDKで出来ることって例えばどんなことですか
103 :
デフォルトの名無しさん :02/09/09 23:58
>>102 細かい制御。
MFCはあくまでもSDKをベースに作られているだけであって特別なものではない。
がんばればMFCでできることはすべてSDKで作れる。普通はやらんが。
104 :
デフォルトの名無しさん :02/09/10 00:02
VC++6を使っています。
例えば nakka氏のページから
ttp://www.nakka.com/lib/mhook/mhook000.lzh をダウンロードして、
mhook.cとmhook.defをプロジェクトに入れてWin32 Releaseでビルドすると、
私の環境ではmhook.dllが49,152Byteになってしまいます。
しかし、上記圧縮ファイルに同梱してあるmhook.dllは16,896Byteなのです。
どうすれば、容量の小さいファイルがビルドできるのでしょうか?
105 :
デフォルトの名無しさん :02/09/10 00:03
生産効率を無視すれば分かりやすいのはSDKだと思うんだけどね
106 :
デフォルトの名無しさん :02/09/10 00:06
>>105 っつーか、MFCってそんなに生産性いいの?
それなら俺もMFC使ってみようかな。今まで食わず嫌いだったけど。
> がんばればMFCでできることはすべてSDKで作れる。普通はやらんが。 俺はMFCはよく知らんし、今さら覚えるのも面倒だからSDK。 これが普通だと思うが。
SDKだとウィンドウ出すの大変なんだもそ
最初だけな
111 :
デフォルトの名無しさん :02/09/10 00:32
>>107 と、思って漏れも本を買って勉強してみた。本が糞だった。
標準講座 MFC6.0という本だ。
糞な点はいろいろあるが、やっぱりプログラムソースで
1とlの区別が付かないフォントを使っちゃマズいだろー
MFCが生産性良いかどうかは判別つきかねるが、Win32API
直叩きよりは、簡単にプログラムができる。
おそらくSDKって言ってるのはWin32API直叩きのこと言ってるんだと思うけど フォント列挙などはWin32APIを使わざるを得ない。 そんなに意識はしていないかもしれないけど使う場面てあるもんだよ。
>>104 ソースは見てないが _DllMainCRTStartup でも使っとけ。
>>104 file alignment size の問題だろう。
/link /opt:nowin98 オプションを付けとけ。
>>104 VC++6sp5 + SDK 2002July でビルドしてみたけど 16384byte だったよ。
最適化とか /opt:nowin98 とか関係なく 16384。
>>116 104ではありませんが、
SDK 2002Julyってのは、Win32 SDKを後からアップデート
できるってことでしょうか? 漏れのVC++5.0に入れても大丈夫?
>116 \mhook000\src>cl /LD mhook.c /link /opt:nowin98 /nodefaultlib /entry:D llMain /subsystem:windows user32.lib /def:mhook.def 02/09/10 02:06 3,072 mhook.dll
>>118 116はそんなこと聞いてないと思うが?
>>117 VC5でも大丈夫...かな?
>>118 スマソ。/opt:nowin98 やったら 2560byte でした。
というか
>>104 は、コンパイラのせいということで。
おはようございます。104です。 118さんの方法でやったら、3,072byte のdllができたので驚きました。 この方法について詳しく調べるには、どこへ逝けば良いでしょうか? 116さんのように 16,384byte になる場合は、 VC++6 の設定をどのようにしているのでしょう? 私はデフォルトのままなので、それが原因でしょうか?
> この方法について詳しく調べるには、どこへ逝けば良いでしょうか? 114で書いてるだろ。まずはそれを調べろ。または /entryオプション。
COMとかATLってそもそも何よ?
>>121 16,384byte になる場合は、
だーかーら、/link /opt:nowin98 だっつーの。
>>124 関係ないよ
opt:nowin98が無くても4kb alignmentにそろえられるだけ
>>125 はぁ?
/opt:nowin98 を付けたら 4KB alignment が 512bytes になるだろうが。
mhook000.lzh の mhook.dll を dumpbin とかで確認してみろ。
127 :
デフォルトの名無しさん :02/09/17 07:55
仮想キーコードの値(VK_BACKなら08とか)から BACKSPACE等の文字列に変換したいのです。 MapVirtualKey()とGetKeyNameText()を使えばできそうな気がするのですが、 使い方が良くわからないです。 どうすれば良いですか?
早く教えろ!ゴルァ!!
>>127 Cの知識とAPIのリファレンスがあれば
使い方がわからんはずはないと思うが。
自分ではどんなコードを書いてみたんだ?
大変初歩的な質問で申し訳ないのですが、 Serialize関数を使ってファイルに保存するときに WriteString関数を使って文字列を書き込むと 文字列と文字列の間にテキスト形式の改行の入れ方がわからないのですが どうすれば良いのでしょうか?
>>130 よくわからんけどドキュメントクラスのSerialize()で
ar.WriteString("test") ;
みたいなことをしてるの?
ためしに
ar << strTest ; // strTestはCStringのオブジェクト
にしてみたら
質問がわかりづらかったみたいですね。ごめんなさい。 たとえばテキストファイルに A B と表示させるときに CString A,B; A="A"; B="B"; WriteString(A); WriteString(B); とすると AB となってしまうので、テキストファイルで表示させても ちゃんと改行されているようにしたいのですが。 (以前C++をかじったときには\nを書き込めば 改行されてたのに、VC++ではそうはならないので困ってます。)
>>132 WriteString()はCArchive::WriteString(),CInternetFile::WriteString(),
CStdioFile::WriteString()のうちのどれ?
134 :
検索のキー :02/09/21 03:36
だれか一つの単語を次々に検索するキーボードショートカットを教えて暮れ. 色々調べても解らず,いちいち Ctrl+F,Alt+F やってます.(泣)
>134 ツールバーの検索欄に入力してF3
136 :
検索のキー :02/09/21 23:54
どもっ
VC++のソース公開してるサイト教えて
>>138 違う(w
VC++で作ったプログラムのソース
140 :
デフォルトの名無しさん :02/09/22 02:06
VC++スタンダードに何を買って入れればコード最適化を使えるようになるのですか?
あとMFCのスタティックリンクも。
>>139 MSDNのCDの中にサンプルが転がってるぞ
お金がありまへん(ノ_;)
Intel C Compiler、とかどうだ?
たしかにAdd-inだから追加だよな。
>>133 レス遅れてすみません。
使ってるのはCArchive::WriteString()です。
すんまそん。 VC++ .NET を買ってきて、MFC使ってプログラムしようと思ってるんですが。 VC++ の「クラスビュー」画面で、マウスの右クリックをしても、 「Windows メッセージハンドラの追加」がメニューに出てきません。 昔、VCC++を使ったときは、ここから簡単にコードを自動追加してくれたと 記憶しているのですが。 .NET のやつでは、メニューの「追加」からは「関数の追加」「変数の追加」 しか出てきません。 マウスクリック時の処理とか、ダイアログ出したりするのも、 がりがりコード書かなきゃいけないんでしょうか。
153 :
デフォルトの名無しさん :02/09/23 01:17
>>152 VCC++ってのは使ったことはないのでよくわからないのですが、
VC.netでは、プロパティのメッセージから追加しろ
>>153 できました!
有難うございます。質問してよかったです。
VCC++ って書いたのはミスタイプです。
もし、なんかいいアプリ作れたら、フリーで配って恩返しします。
感謝。
>>155 ありがとうございます。
ちゃんと改行することができました。
くだらない質問でご迷惑おかけします。
157 :
デフォルトの名無しさん :02/09/24 02:53
VC6で65536を超える配列は使えますか? 以前VC++2.0 の頃にうまくいかなくて、それ以来試していないのですが
1つ30KByteとかの構造体配列でも無い限り使えたとおもうが。
>>157 残念ながら64499次元までしか扱えないようだ。
160 :
デフォルトの名無しさん :02/09/24 03:26
>>158 そうでしたか、コンパイルエラーも実行時もエラーにはならないんですが
実際には65535を超えたあたりから値(計算結果)が狂ってくるという現象に
あいまして
>>159 書き方が悪かったようで申し訳ありません
次元の数ではなく、一次元配列のサイズです
161 :
デフォルトの名無しさん :02/09/24 11:57
IE6の機能とかを使うために最新のヘッダファイルを入手するにはどうしたら よいのでしょうか.。 昔は Internet Client SDKをインストールすればよかったんですが最近VCPPから 離れているんでわかんないです。
>>160 int array[ NUM ];
だとスタック上に取られるんだっけ? で、MSDNにスタックのデフォルトサイズ
は1MBとあるから、VC2の頃より大きくなったとはいえ、コンパイラオプション
変えないと、それ以上大きくできない。
でかい配列は、
int* array = new int[ NUM ];
でヒープにとった方がいいのではないか。
A a; void(A::*p)(int) = &A::a; __asm { push 3 lea ecx, a call p } クラスのメソッドを呼び出すのに上のようなことをしているのですが、 いちいち p に代入せずにcallする方法ないですか?
a.*p(3)やったっけ?
166 :
デフォルトの名無しさん :02/09/24 15:45
VC++6.0の学割版ってあります? Professional Editionってのが7,8万円してとても買えないです・・・。
>>163 どうもありがとうございます
そのときは、たしかヒープ上にとったのです
今は私のPCにはVCがインストールされてないので
時間を見つけて再度挑戦してみます。
168 :
デフォルトの名無しさん :02/09/24 15:59
169 :
デフォルトの名無しさん :02/09/24 17:12
>>166 あるよ。
VC++6.0のStandard版のアカデミックだと、9800円ぐらいだった。
今ならVisual Studio .NET のアカデミック版が22000円ぐらいで
お買い得な希ガス流。
マジすか! どうもです。 休みの日に、大阪日本橋に買いに行きます。
>>164 .NETなら call A::a で呼べるが、6以前ではおそらく無理。
Netscape 6のスクロールバーはなんか特殊な物になってますが、 あれはどうやっているんですか?
独自開発やったっとおもふ。
175 :
デフォルトの名無しさん :02/09/26 21:11
Win2000でVC6を使っています。 ソースを保存する際に、まれに止まる、もしくは落ちるのですが、 何故でしょう? (ガイシュツだったらごめんなさい)
VC6+MFCを使っているのですが、Static Link Library(.lib) を組み込むにはどうしたら良いのですか?
ウィザードでスタティックリンクを選択
今時はMFCをスタティックリンクしてくれた方が迷惑だな
182 :
デフォルトの名無しさん :02/09/26 23:40
で、ほんとのところどうなのよ
>>180 うちのPanasonic Let's NOTEはDLLないってエラー返してくるYO!
184 :
デフォルトの名無しさん :02/09/27 00:15
Visual C++ 6.0 を使ってます。 XPインターフェースのソフトを、manifest を使わずに作成することは可能ですか?
185 :
デフォルトの名無しさん :02/09/27 00:27
>>175 それって、保存するときっていうか、実行するときの「ビルドしますか?」の
ダイアログが出る前に、5秒ぐらい固まって「はい」を選ぶと落ちるみたいな
感じでない? ウチだと 50回に1回くらい、そうなる。
「はい」を選ばずに「いいえ」か「キャンセル」を押して、IDEが落ちるのを
切りぬけてるよ。
186 :
デフォルトの名無しさん :02/09/27 00:33
漏れはXPに変えてからデバッグ実行させるときによく落ちるな。
そんなにXP駄目なのか・・
XPってWindows98(SE)よりましですか?
>>178 #pragma comment(lib,〜)
をソースに追加するか、プロジェクトの設定のリンクタブで設定
190 :
デフォルトの名無しさん :02/09/27 09:56
>>189 実際にプログラム使用するときはそれのほかに
#include <〜.h>
とかを使用しないと使えないですか?
191 :
デフォルトの名無しさん :02/09/27 13:22
今ReadProcessMemory関数の引数にLPVOID型が必要なのですが __gc int *をLPVOIDに変換するにはどのようにすればよろしいのでしょうか? アンマネージなら(LPVOID)キャストでできたのですが どうかよろしくお願いします
192 :
デフォルトの名無しさん :02/09/27 22:20
Win32appli を MFC を使わずに作っているのですが、 strstr や strcpy 関数が、string.h をインクルードしなくても使えてしまいます。 string.h は、必要ないのでしょうか?
>>192 windows.hがインクルードしてる
>>194 サンクス!
気持ち悪かった謎が解けました!
>>193 どうもありがとうございます。ということはそこの部分だけ
アンマネージで書かなくてはならないということですね。
では.NET FrameworksにはReadProcessMemoryと同じ働きを
するものは提供されているのでしょうか?
System::Diagnosticsを見てみたのですが、どうも同じことが
できるような物が見当たらずどうかよろしくお願いします。
197 :
デフォルトの名無しさん :02/09/28 02:43
追加です OnShowWindow() で自分自身に何かメッセージを投げて、 そのハンドラで長い処理を開始すればいいのかなぁと 妄想したのですがどうでしょうか?
198でできました。 なんかバーの表示位置がちょっと左にズレてるような気がするけど・・・・・・・
>>196 出来るわけがない。
OSに強く依存しちゃうから、.NET標準で提供されることはほぼ無いと思われ。
>>200 確かに激しくOS依存ですね。
ReadProcessMemoryでなんとかやってみようと思います。
ありがとうございました。
202 :
デフォルトの名無しさん :02/09/28 14:22
catch(Exception* e) { MessageBox::Show(e->Message, S"エラー", MessageBoxButtons::OK, MessageBoxIcon::Error); } としたら MessageBoxA識別子がクラス名でも名前空間でもありませんと でてきてしまうのですが、どこがまずいのでしょうか?
203 :
ぼぶ ◆EMrmvKLI :02/09/28 14:22
あg
要するに、クラス名でも名前空間でもないんだと思われ。
>>204 どうもありがとうございます。
>>204 さんの仰るように、どうやらMessageBox関数と誤認識を
しているようです。Application::Runなどは普通に動くのですが、
この場合どうすればMessageBoxクラスということをしっかりと
伝えることができるのでしょうか?
>>205 =202
1. なんとかして winuser.h だけをインクルードしないようにする
2. 202 さんの MessageBox クラスを定義する前に
#undef MessageBox とする
どちらかというと 2. の方が実用的っすかね。
MessageBox はプリプロセッサで置換されるんで
多分 namespace じゃ思うように解決しないと思うです。
# そもそも,少なくとも vc++ を使うなら WinAPI と被ってしまう
# クラスは作らない方がいいとも思ってみるテストですょ。
207 :
デフォルトの名無しさん :02/09/29 11:42
DialogBoxParam で giko ダイアログを作成するとき、 LPARAM として構造体 mona へのポインタを渡し、 giko ダイアログのコールバックの中で、 構造体 mona 自体に手を加えたいと思うのですが、 giko ダイアログのコールバックでは、 LPARAM で受け取ったポインタをどうすれば コールバック関数内で構造体 mona に手を加えることができるでしょうか?
そのままキャストすればいいじゃん。
できました。 ありがとうございます。
210 :
デフォルトの名無しさん :02/09/29 17:39
ダイアログベースで、ピクチャーボックスに画像を表示したいんですが。 ビットマップ表示関数は以下のような物です。 BitDraw(HDC hDC, int x, int y, unsigned char* BmpImage, LPBITMAPINFO BmpInfo ) 引数のHDCはどのように取得してやればいいのでしょうか。 初心者爆発ですみませぬ。
スクロールバーを右に動かしても いつまでもTextoutした文字が付いてくるんです。 つまり右の方の文字が見えないんです どうしたら解決できますか?
212 :
デフォルトの名無しさん :02/09/29 19:52
さげてしまった
213 :
デフォルトの名無しさん :02/09/29 20:21
>>213 意外とあっけなく解決しますた。
ありがとうございました
215 :
デフォルトの名無しさん :02/09/29 22:14
ホットキーコントロールで、 DeleteやBackSpaceの入力を可能にするにはどうすれば良いでしょうか?
216 :
デフォルトの名無しさん :02/09/29 22:15
フルパスからファイルネームのみに変換するにはどうしたらいいですか?
>>216 PathStripPathを使えば良いんで無いかい?
>>217 すんげ、すんげー
ありがとうございまs7
219 :
デフォルトの名無しさん :02/09/29 23:45
ラジオボタン最初ッからチェック入れるにはどーしたらいいんでしょう?
220 :
202=205 :02/09/29 23:55
>>206 どうもありがとうございます。
そのMessageBoxクラスは.NET Frameworksの
System.WIndows.Forms.MessageBoxなので
変更できません。
もしかしてプログラムの中のほかの部分で
Win32APIを使っていることが問題なのでしょうか?
どうしても、Win32APIを使わなくてはならない場合は
>>219 MFCならCButton::SetCheck(int)でOKだと思う
222 :
デフォルトの名無しさん :02/09/30 00:12
すいません。int型の数値を文字として認識するためには どういった関数を使えば上手くいくでしょうか?
223 :
デフォルトの名無しさん :02/09/30 00:17
CButton *bp=(CButton*)GetDlgItem(IDC_RADIO3); bp->SetCheck(1); こんな感じでイイノですか?一応出来てるようなんですが・・・
>222 int i=10; char s[256]: sprintf(s,"int型 i の値は%dです",i); printf(s); >224 出来てるならもうなにもいうことはない。
226 :
デフォルトの名無しさん :02/09/30 08:44
VisualBasic の timer control を VisualC++ で使いたいんですけど、 VisualC++ の components & controls gallery から選べません。 どうしたら良いか、教えていただけますか?
>>220 .NET っすか。スレ違いのような気がしてきたけど,よくわかんないや。。。
あちこちのサンプルとかを見ると,
MessageBox :: Show
じゃなくて
MessageBox . Show
って書いてますよ? コロン 2 つじゃなくて,ピリオド 1 つ。
あー,でもApplication::Run が動いたってのが気になるっすね。。。
>226 えっ、そんなの使えるっけ?w VBは知らんけど VCではSetTimer関数使うしかないんじゃない??
>>227 それはC#とかだろ
名前解決にピリオドを使うと、それはC++では無くなる。
230 :
デフォルトの名無しさん :02/09/30 13:17
ダイアログベースアプリにポップアップメニューつけるには どうしたらよいのでしょう?
231 :
デフォルトの名無しさん :02/09/30 13:34
>>230 WM_CONTEXTMENUのメッセージハンドラ作成して、
CMenuやらなんやらでポップアップメニュー作成。
232 :
デフォルトの名無しさん :02/09/30 13:35
インクレメント演算子++、デクレメント演算子−−ってただの +や−(−○)と意味が違うんですか? 今現在学校の講義の実習を受けてるんですが、何が言いたいのかさっぱり ッス
講義中に2ちゃんねる見るの禁止!
234 :
デフォルトの名無しさん :02/09/30 13:37
講義中だけど、これができるまで講師に放置プレイ食らってるんです。
236 :
デフォルトの名無しさん :02/09/30 13:39
んなこたない
何の講義をしているかによって答えは変わってくるけど、 単純に何をしているのかって事だと 変数の値を変化させるかさせないかだけ。
今は自分で電卓を作る講義(当然講義名は違いますけど)で 「+=や*=などのCの代入演算子や、インクレメント演算子++ やデクレメント演算子−−を追加せよ。&&と||が左から右の 順に評価されるようにし、Cと同様に評価が早く終了するように 変更せよ」が問題文です。根幹となるプログラムは与えられてます。 でもこの問題の通りにプログラムを追加していったい何の機能が 追加されたのかがわかりません。だからどんな計算をさせれば どういう答えが出てこなければならないかもわかりません
i=i+1 i+=1 i++(++i) は同じ意味です i++はiを1増加するという意味です --はその逆です 1増減する時に限定してインクリメント(++)やデクリメント(--)が用意されています
>は同じ意味です 文脈によって意味が変わるだろ
241 :
デフォルトの名無しさん :02/09/30 17:20
ダイアログ上に配置した様々な種類のコントロールの中で、 どこにキーボードフォーカスがあるか調べることってできますか?
>>240 そうだよな
a[i++]=0とa[++i]=0
じゃあ全然意味違うしな。
>>232 昔コンパイラが賢くなかった頃。
inc dec add sub などアセンブリ命令を明示的に示す必要があった。
i = i+1だとadd命令。
++iだとinc命令。
addよりもincの方がローコストなのでこの表記が推奨されている。
表記が単純。演算子のオーバーロードなどでイテレータを操作するような
機能を享受できる。とかのメリットがある。
>>244 へぇ〜。
なるほどねぇ。
俺は単にらくだから使ってたけど…
>>244 おいおい、いくらCがご都合主義の糞言語だからって
その言いがかりは無いだろ。
前置、後置インクリメント/デクリメントは理由があって導入されたんだよ
基地外が何か言ってるモナ・・・  ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ヒソヒソヒソ ∧_∧∧_∧ _∧ ヒソヒソヒソ ( ´∀( )∀` ) ( つ ( つ ⊂ ) ( _)(⌒)(⌒)ノ_(_)ノ
>>246 はC言語が出来なくて挫折した厨房と言うのは本当ですか?
そんな会話他行ってやってくれよ
>>229 うん,それは分かってるんだけど
202=205=220 さんが System.WIndows.Forms.MessageBox とか言い出したんで
スレ違いかなとは思いながら C# を仮定してみますた。
でも Application :: Run てのも気になるなあ。実は 202 さんの勘違いとか?
251 :
デフォルトの名無しさん :02/10/01 03:10
http://dvd2svcd.doom9.net/ このページに有るDVD2AVIのコマンドライン版に日本語を完璧に読み込ませるには
どうソースを弄ったらいいんでしょうか?
今のところ一部の日本語が文字化けして、バッチ処理させようにも止まってしまい、
悩んでます。
>>251 全部読んで説明しろと?
果てしないアホだな
>242 お返事が遅くなりましたが、できました。 ありがとうございます。
254 :
デフォルトの名無しさん :02/10/01 10:53
VC++でカラーピッカーを使いたいんですけどやり方がわかりません
255 :
デフォルトの名無しさん :02/10/01 12:59
環境はVC6.0 sp5 98SE sp2です。 基本クラスを非Publicに継承させた派生クラスがあります。 基本クラスのメンバヒントのアイコンがpublic継承 時と同じなんですがVCのバグですか? class Base{ public: int base_int; }; class A : private Base{ }; int main(){ A hoge; hoge. ←この時のメンバ表示でbase_intはpublicだそうな。 return 0; }
SDIで描画させたものをプリントアウトできません。どうすればいいのでしょうか
プリンタのDCにBitBltすれば?
>>257 正直よくわかりませんが、とにかく方法はあるということですね。
その単語頼りに調べてみます。ありがとうです
できた(*´∀`*)
260 :
デフォルトの名無しさん :02/10/02 06:30
>260 slnはソリューション。 えっとVC6までにはなくて VC.NETのプロジェクトファイルみたいなもん。 .NET使えば嫌でもおめにかかれるゆお。 仕事行って来ま。。
262 :
デフォルトの名無しさん :02/10/02 13:37
>>261 うわぁぁぁぁぁぁん
じゃぁVC6だとサンプルが見られないんですね…
だれかCImageの使い方教えて下さい…
263 :
デフォルトの名無しさん :02/10/02 21:32
あるDialog Aが、別のDialog BをDoModalで表示しているとき、 BからAにあるメッセージを::PostMessageするにはどうしたら いいんですか?
264 :
デフォルトの名無しさん :02/10/02 22:29
try .. catch と TRY .. CATCH は別のものなの??? @_@
265 :
Y.Kusakabe ◆GpSwX8mo :02/10/02 22:41
マクローリンかもしれないですね @_@
266 :
デフォルトの名無しさん :02/10/02 22:43
void?
267 :
Y.Kusakabe ◆Vr7Zu5Ts :02/10/02 22:48
268 :
デフォルトの名無しさん :02/10/02 22:50
void?
>>263 Bの中から
::PostMessage(Aのm_hWnd, hoge, 0, 0);
みたく
>>264 大文字と小文字だから明らかに別物だ
270 :
デフォルトの名無しさん :02/10/03 00:33
>>269 ありがとうございます。
Aのm_hWndって、Bを生成したあとに明示的にAからBに渡すのが普通の方法ですか?
>>270 生成した後というか、Bのコンストラクタに渡す、ぐらいでいいんでないの。
273 :
デフォルトの名無しさん :02/10/03 03:18
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●● /| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ | | | ̄ ̄ ̄ /| || | | | / /|TTTTTT TTTTTTTTTT||TTTTT | /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^ | / / |// / /| | / / |_|/|/|/|/| | / / |文|/ // / |/ /. _.| ̄|/|/|/ Λ_Λ /|\/ / / |/ / (___) /| / / /ヽ /〔 非OO 〕〕つ | | ̄| | |ヽ/l `/二二ヽ | | |/| |__|/ Λ_Λ / /(_) | |/| |/ ( ´∀`) (_) Λ_Λ | | |/ // / ^ ̄]゚ (` ) | |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
274 :
デフォルトの名無しさん :02/10/03 04:50
なんか一部のファイルだけClassViewに出てこないんですが どうやったら復旧できますか?
275 :
デフォルトの名無しさん :02/10/03 04:54
.ncb 消したらなおりました。
276 :
デフォルトの名無しさん :02/10/03 07:43
char hoge[MAX_PATH] と char hoge[_MAX_PATH] って、内容は違うのですか?
>>276 MAX_PATH の部分を右クリックして、「定義位置を参照」すれば分かる
CWnd *pWnd=GetDlgItem(IDC_PICTURE); pWnd->SetCapture(); ってやると ReleaseCaptureで解放できなくなるんですけど、どうしたら・・・
279 :
デフォルトの名無しさん :02/10/03 17:23
if()
280 :
デフォルトの名無しさん :02/10/03 22:41
リストビューで項目の選択位置が変わったことを通知してもらうにはどうすればよいですか? エディットコントロールやコンボボックスなどを無効にするにはどうすればよいですか? 教えて下さい。
>280 前者はそういうWMのハンドラ作成すればいいんじゃないかな? 後者はEnableWindow
>280 ちなみにEnableWindow関数は CWnd::EnableWindowなので CWndから派生したクラスのコントロールには全てしようできる。 CWndの関数は全て目を通しておくべき。 もし言ってる事が理解できないなら勉強不足。
>281 EnableWindowでできました!アリガトン! でも、まだリストビューの方がまだ良くわかりません。 選択位置が変わったことを示す通知メッセージってありますか?
284 :
デフォルトの名無しさん :02/10/04 04:56
VC++のエディタなんですが、インデントを自動でそろえることはできないんでしょうか? emacsのC++-modeでのTABキーあるいは M-x indent-region のような・・ 手動でTAB,DEL,SPでそろえるのが苦痛です。教えてください。
VCの6です。7はもっていません。
>>284 選択範囲のインデントは Alt+F8 なんですね。発見しますた。
いまカーソルのある行をキーひとつでインデントすることはできないんでしょうか・・?
>>286 ツール>カスタマイズ>キーボード の カテゴリ:編集 を選ぶと
コマンド:に、エディタのコマンドリストが表示される。
インデント関係のコマンドもいくつかあるんで、好きなのを好きなキーに
割り当てるなり、キーカスタマイズするよろし。
288 :
デフォルトの名無しさん :02/10/04 15:18
同名のヘッダと実装ファイル(hoge.hとhoge.cpp)を一発で切り替えて表示するVC++のマクロが webのどこかに落ちてたんですが、どこにあったか知りませんか?
>287 ありがとうございます。 行頭でTABを押せば"IndentToPrev"するようにできました。 行頭以外で押すと相変わらずTAB文字が入力されてしまうのがなぞだけど。。
VB5CCE使ってるんですが、 Freeで .EXE 作成ソフトってありますか?
292 :
デフォルトの名無しさん :02/10/04 19:43
フォルダを作るにはどうすればいいですか? VBのMkdirみたいなやつです。
>292 1 mkdir 2 CreateDirectory
296 :
デフォルトの名無しさん :02/10/04 22:41
DialogBoxでダイアログを表示させるときに、 座標を設定してから表示させることはできませんか?
>296 できます。 OnInitDialog関数内で MoveWindowしましょう。
>>296 - >298
MoveWindow() は位置だけでなくウィンドウの幅/高さも指定しないといけないので、
単なる移動なら SetWindowPos() を SWP_NOSIZE|SWP_NOZORDER フラグ付で使う
ことを激しくお勧めする。
300 :
デフォルトの名無しさん :02/10/05 00:25
マウスの左クリックした点を始点にクリックしままマウスを動かすと四角が大きくなって行くようなことを したい場合どうすればいいですか? ペイントとかの範囲指定みたいなヤツ。 OnLButtonDownとOnMouseMoveをどんなふうにいじればいいですか?
301 :
デフォルトの名無しさん :02/10/05 00:27
>>300 CreateRectBigToSmallとCreateRectSmallToBigを使っとけ
302 :
デフォルトの名無しさん :02/10/05 00:33
>>301 ありがとうございます。早速やってみます。分からなかったらもう一度聞きに来ますんで、
よろしくおねがいすます
>>301 すいませんわかりません。CreateRectBigToSmallというのは関数ですか?
msdn googleでもヒットしませんが・・・
>>300 標準的なインプリメント(APIあるの?)は分からんが、
XORペンを使うとそれらしいものができる。
OnLButtonDown、OnMouseMove、SetCapture、SetROP2 あたりをキーワードにして
Googleれば、コードでてるんじゃないかな。
>>304 ありがとうございmス。がむばってみます。
306 :
デフォルトの名無しさん :02/10/05 02:02
はじめまして。 VC++6.0でORACLEのDBに接続して、値を取得しようとしています。 OPEN関数を使用した際にORACLEへの接続ダイアログ(IDとかパスワード入力するやつ)が 出ないように出来ないのでしょうか? ご教授お願いします。
308 :
デフォルトの名無しさん :02/10/05 13:34
今、任意のディレクトリ内のファイルをプログラム内で一旦リスト化するプログラムを作成してるんですが if(hFile != INVALID_HANDLE_VALUE){ // FindFirstFile関数に成功したら if( win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY != 0 ){ a = 0; strcpy(ddlist[a].fname ,"win32fd.cFileName"); } while(FindNextFile(hFile, &win32fd)){ if( win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY != 0 ){ a++; strcpy(ddlist[a].fname ,"win32fd.cFileName") こういうソースを書くと、strcpyが上手く働かないんですよ。ddlistは構造体配列です。 どこが間違ってるんですかね?コンパイルまでは普通に出来てしまうんですが・・・
なぜ "" でくくる?
"win32fd.cFileName"という文字列をコピーしたいんだろうなと思ってしまった俺。
311 :
デフォルトの名無しさん :02/10/05 13:46
>>309 ,310
あぅ・・・・そうだった・・・
ご助言ありがとうございます。さっそく修正にかかりますですw
>>311 > ご助言ありがとうございます。さっそく修正にかかりますですw
ネタじゃなかったんだ...。つーか、デバッガで ddlist[a].fname の内容見ればサルでもわかると思うけど...。
質問です。 MFCで作成したdllをMFCを使用しない アプリケーション(Win32App)から呼び出すためには 何をすればよいのでしょうか?
>>307 oo4oではなく、ODBC接続でも可能ですか?
やり方もしくは、参考になるページなどありましたら教えてください。
よろしくお願いします。
317 :
デフォルトの名無しさん :02/10/05 17:21
ダイアログのグループボックスで囲んだ中のアイテムすべてをいっぺんに 有効、無効にすることは出来ますか?
またまた質問なんですが、 ofstream fout(aaa.txt) でaaa.txtを開いておいて、クラスの中の配列に格納した文字列をその中に出力したいのですが、 for(a=0;aite[a].clmember != "\0";a++) { fout << aite[a].clmember << "\n"; }; 見たいに書くととてつもなくどでかいファイルが作成されます。 clmemberは100行?の配列で、中に入ってるのは、実行ディレクトリ内にあるファイルの名前です。 私が出力したいのはそのファイルの名前なんですが・・・ こういう場合どうしたら上手くいくんでしょうか?
グループボックスを有効、無効に
>>319 それだとできないんですが・・・
なんか設定間違いテル?
グループボックスが親になってる?
親、子はどこで設定するのですか?プロパティのグループっていうチェックボックスですか? それにはチェック入れているんですが・・・
プログラム中で SetParent() 使って、グループボックスの中のコントロールを グループボックスの子ウィンドウにするって事かな?
LSI C-86 Ver.3.30 試食版でコンパイラしようとしたところ can'topen:stdio.h: No such file or directory can't open:math.h: No such file or directory ってでます何が悪いのでしょうか?
>324 stdio.h が開けない ファイルかディレクトリを探せない math.h が開けない ファイルかディレクトリを探せない つまりコンパイラが探そうとしているディレクトリに 該当するファイルがない、、と。
スレ違い。 おおかた _LCC の設定ができていないのだろう。
327 :
デフォルトの名無しさん :02/10/06 01:32
ある座標がある四角形の中にあるかどうかを判断する関数とかありますか?
PtInRegionかな
330 :
デフォルトの名無しさん :02/10/06 02:00
ダイアログアイテムのプロパティで”通知”ってありますよね? それをプログラム内で変更するにはどーしたらいいですか
331 :
デフォルトの名無しさん :02/10/06 03:01
今、CRC算出プログラムを作っているんですが、ちと壁にぶつかってます。 いろいろなところに置いてあるソースを参考に組んだはいいんですが、 void CBCrc32::CalcBlock(BYTE *lpBuf,UINT nSize) { //CRCを計算する部分 //lpBuf:計算対象の先頭ポインタ dwSize:計算するバイト数 こういった感じに、渡すのが先頭ポインタと・・・ ファイル名が分かっている場合に先頭ポインタを渡すには一体どんな前作業をしたらいいんでしょうか?
>>328-329 という関数名を聞いて即座に「PtInRectかな?」と思えるような
センスって大事だよね。
333 :
デフォルトの名無しさん :02/10/06 08:43
僕はC++に関しては、理解をしている人間です。 この度、VC++を購入したいと思うのですが、 初心者本を読まなくても、扱えるでしょうか? つまるところ、VC++のC++との類似度といいますか、 そのへんの度合いをうかがいたく思います。
>333 VCを使ってなにをするかによる。 VCでC++書くつもりなら必要ない。 Windowsプログラミングするつもりなら必要。 と思う。
335 :
デフォルトの名無しさん :02/10/06 09:05
>>334 ありがとうございます。とても参考になりました。
僕はC/C++でWinアプリを作るのが面倒で、VC++を導入しようと
思っていますので、そうなると初心者本は必要という事になりますね。
>>332 > という関数名を聞いて即座に「PtInRectかな?」と思えるような
> センスって大事だよね。
センス ? 知識だと思うけど ?
大事なのは同意だが。
337 :
デフォルトの名無しさん :02/10/06 16:09
作成したダイアログのタイトルバーの左端に アイコンを表示させるにはどうすれば良いですか? MFCを使わないで作っています。
>>337 SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) | WS_SYSMENU);
こっ、こんな感じかなぁ。
WM_SETICON
342 :
デフォルトの名無しさん :02/10/06 18:48
( ・∀・)イイ!(・∀・)スッドレ!
みなさんありがとう。 でも、340も341もダイアログにアイコンが表示されませんでした。 リソースエディタで作って、設定はほとんど変更していないダイアログなのですが。
>>331 ファイル全体を配列(バッファ)に読みこむか、もしくわメモリマップを使う
346 :
デフォルトの名無しさん :02/10/06 22:13
VCでコンパイルしているか?をコンパイル時に判断するには何で #ifdef するのが適当でしょうか? VC++, BCB, g++ でmakeできるモノを書いています。
>>346 > VCでコンパイルしているか?をコンパイル時に判断するには何で #ifdef するのが適当でしょうか?
VC と言うことであれば、_MSC_VER でいいと思う。(ちなみに、VC++ 6 なら値は 1200 らしい)
VC 独自の機能を使っているのであれば、_MSC_EXTENSIONS の方が望ましい。
>>344 SendMessage( hWnd, WM_SETICON, ICON_SMALL, IDI_ICON1 );
↑このようにしてみたけど、Windowsマーク?がでるんだよ。
アイコンのハンドルってどうやって指定すれば良いですか?
AtlAxDialogBoxを使ってブラウザを作っているのですが、 ダイアログボックス上でマウスイベントが取れないので取ることは可能でしょうか?
追記:ヘルプ見ててもWM_LBUTTONDOWNとかのメッセージが取れるとは書いてないんです。
tif画像を表示するにはどうしたらいいですか?
libtiffっていうライブラリがあるな。 あとはぐぐって調べれ。
CImageじゃだめなんだっけ?
355 :
デフォルトの名無しさん :02/10/09 20:31
VC6をつかています。例外を投げて、それを参照で受け取ろうとしても すり抜けてしまうように思うんですが、参照うけはだめぽ?
356 :
デフォルトの名無しさん :02/10/09 20:36
>349 取れない? 取れるでしょ。
>>355 ハァ?
そのくらいのテストコードも打てなきゃ何やっても駄目。
自分の作ったプログラムをデバックしたい。 この際にアゼンブラが表示されるが このアゼンブラを理解するのに適切な書籍、サイトを 教えて下さい。 深く追求したものではなく、浅く、わかりやすく解説したサイト希望
359 :
デフォルトの名無しさん :02/10/09 20:43
360 :
デフォルトの名無しさん :02/10/09 21:09
362 :
デフォルトの名無しさん :02/10/09 21:34
ISO-2022-JPで書かれたヘッダファイルをVC6のFile View で、追加してしまったら、 16進表示されました。その後、エンコーディングをShift_JISになおし、 改行コードもCR+LFになおしたのですが、相変わらずhexで表示されます。 一度ファイルをFileViewから削除して再度追加しても改善しません。 どうしたらいいでしょうか?
363 :
デフォルトの名無しさん :02/10/09 21:40
>>362 ウィンドウ - すべて閉じる
を一発かましておけばOKでした。すんまそん。
>>356 ダイアログウィンドウにしたら取れました。。
しょうもない質問してすんません。。
>>361 アセンブラでぐぐったら一発で出てきた。
この程度の検索ができないようなら、あきらめたほうが吉。
制御が空の文が見つかりました。意図した記述でしょうか?
367 :
デフォルトの名無しさん :02/10/10 23:57
質問があります。 WEB上のC++入門関連のプログラムを見ていると switch case 〜 で条件を抜けるときに break を使っている個所と return (0L) というところとあります。 この違いは何でしょうか?違いは無いですか?
369 :
デフォルトの名無しさん :02/10/11 00:26
そっか、勉強になった注意しよ。
ゴメン、場所間違えた。
371 :
デフォルトの名無しさん :02/10/11 02:55
しつもんです。 ダイアログベースのWinアプリ開発中なんすが、 タイトルバーで最大化ボタンだけ削除する方法ってありませんか? WS_MINIMIZEとかでも最小化と最大化が一体となって動作 してやがるんですが。 よろすぃくー
最大化ボタンだけ無効化ならできるが、削除はできない。
WS_MAXIMIZEBOX 外せばいいんでないの そんな簡単な問題ではない?
WM_NCPAINTでつぶせよ。
.net環境手に入れて(大学一括ライセンスで)とりあえず初心に返ってhello world書いてみた error C2065: 'pDC' : 定義されていない識別子です。 ・・・・・VBあたりから勉強始めてみようと強く心に決めました・・・・
376 :
デフォルトの名無しさん :02/10/11 14:40
エクスプローラで Alt + ← を押すと「戻る」が実行されますが、 keybd_event で、 Alt 押す ← 押す ← 離す Alt 離す というふうにしても、「戻る」になりません。 私の環境だけの問題でしょうか? どうすれば keybd_event からエクスプローラの「戻る」ができますか?
>>376 それでできるよ。コードがまずいんじゃないの?
>>376 環境っつーなら、環境書けや。
Sleepちょこっと入れてみ。
379 :
デフォルトの名無しさん :02/10/11 16:23
c++でx^(1/2),x^(1/3),x^(1/4)を数表に表したいのですが、間違いがわかりません。 ここに書いてもいいですか?
380 :
デフォルトの名無しさん :02/10/11 17:56
Windows をシャットダウンさせた時に 関数 hoge を実行してからアプリを終了させようと思うのですが、 シャットダウン実行時にアプリを閉じるメッセージを取得して 関数 hoge を実行するにはどうすれば良いですか?
WM_QUERYENDSESSION
>>376 エクスプローラーはアクティブになってんのか?
>>379 そりゃそうだろ!
C++では^はべき乗じゃねーからな。
powを使え!
384 :
デフォルトの名無しさん :02/10/11 20:36
超初心者質問 VC++6で「挿入」−「リソース」−「ダイアログ」から チェックボックス一個とOKボタンのみのresource.h、dialog.rcを作りました。 これを表示させ、OKボタンが押されたとき チェックボックスの状態を判定するにはどうすればいいですか? MFC、C++は使わない方法を教えてください。
>384 目で見て判定しる。
IsDlgButtonChecked とか BM_GETCHECK
>>384 WM_COMMANDを取得してWPARAMの値をswitchで分岐させて、
OKボタンが押された時にチェックボックスの値をSendMessageで取得しる!
表示はどうやればいいんでしょう?(超初心者です)
猫のページ逝け
390 :
デフォルトの名無しさん :02/10/11 21:27
質問です。 ActiveXコントロールで、ウインドウを作成するコントロールを作るにはどうしたらよいのでしょうか。 Webブラウザ上に、新たなウインドウを作成し、その中で自分で作成したプログラム結果を表示したいので、よろしくお願いします。 開発環境はVisualC++6.0です。
>>386-387 >>391 おぉ、ありがとう。
「DOSのプログラムは、作れるがWindowsのプログラムはちょっと・・・」
ってのに該当します。
一通り読んで試行錯誤してみます。
393 :
デフォルトの名無しさん :02/10/11 22:04
学校で先生がやってるのが個々のモニターに写って見てたのだが、 先生がすばやく、ピピっと同じような文章を複数書く技をしていました。 あれはどうやったらできるのですか? こう、反転させてコピーして、指定したとこに貼り付けとかじゃなくて、 なんかエレガントにしてました。
Ctrlキー押しながらドラッグとか。
395 :
デフォルトの名無しさん :02/10/11 22:33
>>394 なるほど。でも、なんかうまくいかない時とかあります…
Visual C++の本借りてくるか…
Ctrl+Vという落ちではなかろうな
397 :
デフォルトの名無しさん :02/10/12 00:25
暖炉でスマソ。 自分で作ったプログラムの VS_VERSION_INFOの リソースのバージョンを取得するにはどうすれば良いのでしょうか…。
>>397 APIじゃだめ?
GetFileVersionInfoSize + GetFileVersionInfo + VerQueryValue
とかで。
399 :
デフォルトの名無しさん :02/10/12 14:08
実行ファイルの自己チェックの実装について、ヒントもしくは 参考になるURLを教えていただけませんでしょうか? ちなみに環境はVC++6.0です。
>399 自己チェック!? なにをチェックするか書かなきゃ。
401 :
デフォルトの名無しさん :02/10/12 14:51
>400 実行ファイル本体のチェックです。 実行ファイルをいじると起動できないように したいのです。
前にどっかのページでみたのは、 exeのCRCをとって、それをexeのある領域に書き込み、 実行段階でCRCを読みとったら、CRCの書かれてある領域を 潰して、実行ファイルのCRCを算出して、比較していたような。
403 :
デフォルトの名無しさん :02/10/12 15:08
404 :
デフォルトの名無しさん :02/10/12 15:10
>>401 実行ファイル本体のチェックをいじると起動できるがな。
406 :
デフォルトの名無しさん :02/10/12 18:41
>>405 そうなんですよね・・・(−−;
そういうのって簡単にできるものなのでしょうか?
>>406 アセンブラの知識があれば難しくはない。
ところで、チェックする目的は何なの?
>>405 チェック部分を暗号化して実行時に復号して実行するとか、やたらめったらチェックする個所を増やすとか...。
所詮プログラムだから、完璧に防ぐのは困難。いたちごっこを覚悟するしかない。
>>408 その前に、目的はなんだろね?
シェアエアの不正使用防止だったらそれで別にいいが、
ウィルス等による改竄防止だったら何をやろうが無意味だね。
410 :
デフォルトの名無しさん :02/10/12 22:11
iostream 系が stdio 系に比べて著しく遅いのですが、 何か回避策はありませんでしょうか? ifstream cif(filename); for(i=0;i<N;++i) { cif >> value; ・・・ } と FILE *fp = fopen(filename,"r"); for(i=0;i<N;++i) { fscanf(fp, "%lf", value); ・・・ } とで比べると、下手すると(体感ですが)10倍以上違うような気がします。 「遅いのが嫌ならfscanf素直に使っとけ(゚Д゚)ゴルァ」 って事でしょうか? それだとなんか悲しいですが・・・
412 :
名無し~3.EXE :02/10/12 22:31
NET_API_STATUS の値の調べ方を教えてください。 [背景] デバッグで NET_API_STATUS が213という 値を返しエラーで終わるのですがこの値 が何を意味するか分かりません。 リファレンスがあるといいのですが。 お願いします。
>>412 > デバッグで NET_API_STATUS が213という値を返しエラーで終わるのですが
どういう API 呼んだ時なの ?
415 :
名無し~3.EXE :02/10/12 23:54
>>414 ありがとうございます。
MSの NetAPI系です。ヘルプには戻り値は
NET_API_STATUS 型で返されると記載されているのですが
その戻り値の値がどのエラーに対応するか
リファレンスがなくて困ってます。
例えば
エラー1は out of memory
エラー2は invalid parameter
.
.
.
のようなリファレンスがあってもよさそうなんですが。
ちなみに GetLastErrではエラーは取れませんでした。
>>375 のエラーの原因が色々友人に聞いてみたりしたんですけど分かりません
ホントにただ普通のpDC->TextOut(10,10,"はろーわーるど");
って書いただけなのにエラー吐かれるのが解らずぱにくってます
だれか教えていただけないでしょうか?
なぜVC6でできた事が.netになったらできなくなったんだろう・・・・・
どこに書いてんのよ
>>416 MFCか?
引数よく確認した方が良いぞ。
>>415 System Error Codesみてもわからんかっただ
えらーこーど213ってなんだべ
役に立たなくてすまん
420 :
デフォルトの名無しさん :02/10/13 00:36
別スレで質問させていただいたのですが、 レベル的にこちらの方がよさそうと思い、移動してきました。 よろしくお願いします。 DLLの中にCStringなどのクラスを内部で使用している クラスを作成しました。 動作環境としてCStringなどのクラスを使用することは 何らかの制限がかかるのでしょうか? つまりめんどくさいなどの理由で用意されているクラスを 多様しないの方がいいのか?という疑問です。 また、作成時スタティックリンク、ダイナミックリンク どちらにしても動作環境は変らないのでしょうか? 作成したDLLを使用する際、VBで使うことも考えているのですが、 CStringとか使ったらVBで使えないようなイメージがあります。 そういうこと解説しているページ、その他アドバイスなどいただけませんか? よろしくお願いします。 環境はVC.NETです。 よろしくお願いします。
>>413 そーですか?おかしいなぁ・・・
別にそれ以上の事やってないんですけど、圧倒的にiostreamの方が
遅いんですが・・・
>>411 アフォか?
プログラムで何をやってようがエントリポイント書き換えられたら無意味。
>416 レスがつかない理由は何故だと思う?
>416 コンパイラは 「pDCってなによ?」って言ってるんですね。 確認してないけど int main() { int i;//←これがないと i=0; } 同じエラーでるんじゃない? 私も人の事言える立場じゃないですが。 >VC6で出来た事 いやいや、できません。 とにかくpDCを自分で作るなり もともとあるところに書かなきゃ。
学校でVC使った授業が始まったので、家でも勉強してみようと思い LSI C-86 Ver.3.30 試食版を導入してみました。 それでコンパイラして実行したところ、終わったあとに 「Press any key to continue」 の文字が出ません。 これはVCでしか出ないメッセージなんでしょうか?
>>415 > MSの NetAPI系です。
NET_API_STATUS の話なんだから、それはわかってる。
もしかしてなめてんの ?
なんで、具体的な API 名を書かないの ?
本気で解決したいんなら、ソース出せよ。
何で怒ってるんだ
>>426 は
教えたくなけりゃ書き込まなきゃいいだろうに
リソースエディタについて教えてください。 色々試した結果DialogBoxで「指定されたリソースがイメージファイルに見つかりません」 となってたことが判り、更にdialog.rc、resource.hファイルを見直したところ [resource.h] #define IDD_Dialog 101 [dialog.rc] #include "resource.h" IDD_Dialog DIALOG DISCARDABLE 0, 0, 163, 99 となっており、 DialobBox(hInst, "IDD_Dialog", wHnd, DlgProc) と呼び出しても"IDD_Dialog"が認識されなかったようです。 で、リソースエディタでIDD_Dialogの名称変更できそうな場所を色々弄ってみたんですが どうしても同じ名前になってしまうようです。 このあたりについて詳しく教えてもらえないでしょうか。 ・resource.hの該当個所をコメントアウトする(問題あり?) ・dialog.rcでresource.hをインクルードしない(問題あり?) ・どちらかを手書きで別の名称に変更する ・dialog.rcもresource.hも手を加えずに呼び出す方法が別にある 等など・・・ よろしくお願いします。
>>429 DialobBox(hInst, "IDD_Dialog",
^^^^^^^^^^^^^ →MAKEINTRESOURCE( IDD_Dialog )
>>429 若しくはResourceViewでリソースの名前を""で囲むとか。
リソーススクリプト、その他を直接いじるのはお奨めしない。
(某ページでは奨めてるけど…)
>>430-431 ありがとうございます。
おかげでダイアログ表示できるようになりました。
ダイアログベースでのフォントに変更について教えてください。 リソースエディタでダイアログのフォントサイズを変更すると、 その上に乗っかっているコントロールのフォントがそれに合わせ られます。その状態から特定のコントロールのフォントを大きく しようと思ってSetFontを使いました。 結果フォントは大きくなったのですが、改行幅がそのままの ようで、上下に文字が重なってしまいます。他に何かいじら ないといけないのでしょうか。 フォント設定のソースは以下のような感じです。 CListBox* Lst; CFont Font; Font.CreatePointFont(160,"MS ゴシック",NULL); Lst->SetFont(&Font,TRUE);
上のソース Lst = (CListBox*)GetDlgItem(IDC_XXXX); が抜けてました。
>>433 リストボックスの項目の高さをフォントの高さに合わせて手動で指定して
やらないとダメなのかな?勘だけど。
436 :
デフォルトの名無しさん :02/10/15 13:39
CStdioFileを使っているのですが、 abc 123 efg 45 hij 78 というfileに書き足して abc 123 98 efg 45 76 hij 78 54 と右に向かって書き足していきたいのですが どうしたらいいのかわかりません。 Seek使えばよさそうなんですけど 具体的にどうしたらいいかアドバイスください。 ファイルの中身は左端に3文字の文字列で あとは2桁または3桁の数値です。 文字列と数値、数値間はすべてtabで区切ってあります。 よろしくお願いします。
起動するとメモ帳を開いてクリップボードの中身を そこに貼り付ける、っていうアプリ?を作ってるんですが メモ帳を開く所までは出きるものの どうすれば貼り付けれるのかわかりません。 ご教授お願いします。
ファイルを読みこみたいのですが、どうしてもエラーがでます。 最初はうまくいったのですが・・。 VisualCはあんまりよくわからないので、教えてください。 fp=fopen("test","r"); if(fp==NULL) printf("dame"); dameとだけでます。 データはDebugやtest.c dsw 等があるとこにいっしょにおいています。
??
>>438 絶対パスで試してみるように薦められたはず。
>>435 お答えありがとうございます。
ただ、「手動で設定」の意味が分かりません。
リストボックス自体の大きさはダイアログ
エディタ上で指定できますが、項目の高さも
指定出来るものなのでしょうか。
ちなみにエディットボックスでも同様の状態です。
やはり高さの指定があるのでしょうか。
>>438 ネタか?
正直言って何がしたいのか分からない。
ファイルを開きたい
>>441 リストボックスの項目の高さは CListBox::SetItemHeight() で変えら
れるが、それやらなくても
>>433 みたいにすれば項目の高さも自動調節
されたよ。プロパティはデフォルトで。
エディットボックスはウィンドウの高さ自体を変えてやらないとダメっぽい。
>>445 >それやらなくても
>>433 みたいにすれば項目の高さも自動調節
>されたよ
うーん、そうですか。なんでだろ・・・。
ともあれ何とかなりそうで、助かりました。
そのほかにもアドバイスをくださった方、
ありがとうございます。
もっと精進します。
444はネタじゃなくてマジだから、マジ回答をしたら次にファイルの読み方を聞かれる罠。
450 :
デフォルトの名無しさん :02/10/17 22:22
ダイアログのボタンにビットマップを表示させたいのですが CButton *bp=(CButton*)GetDlgItem(IDC_BUTTON1); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); HBITMAP hbmp = HBITMAP(bp); bp->SetBitmap(hbmp); ↑なにがダメですか?
>450 さぁ、まずあんたのPCではどうなるんだ? CBitmap bmpのスコープが問題じゃないの? 試してないからあんま自信ないけどさ。
>>450 ( `Д) <単純には貼れない。CBitmapButtonを調べれ。
/(ヘ つ )ヘ
単純に貼れるっつの。 CButton *bp=(CButton*)GetDlgItem(IDC_BUTTON1); int cx = 16; // 画像の幅 int cy = 16; // 画像の高さ HBITMAP hbmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, cx, cy, 0); bp->SetBitmap(hbmp);
BS_BITMAPを指定していないという罠
( `Д) <・・・ /(ヘ つ )ヘ
456 :
デフォルトの名無しさん :02/10/18 22:01
CreateEventに指定する引数の SECURITY_ATTRIBUTESに何を指定したら良いのかわかりません。 メンバのnLengthにはsizeof(SECURITY_ATTRIBUTES)を指定する のはなんとなく分かったのですが、ほかの二つが分かりませんでした。 どなたか教えてください。
>>456 英語が読めないので助けてください、ということでつか?
糞スレage
質問です。 5年ぐらい前のVC++4.0で WinMe上で簡単なプログラムを実行すると MSDOSプロンプトで「定義ファイルが開けません」と出て、 プログラムの実行自体はされます。このメッセージは何故出てしまうんでしょうか? 気になります。
461 :
デフォルトの名無しさん :02/10/21 03:34
MDIのCChildFrameでCMainFrameのポインタは取得できますか
AfxGetMainWnd() ?
できましたありがとう
>>460 反応がないのは、VC++4.0という環境を持っているユーザーが少ないせいで誰もその状況の再現をできないためと思われる。
うちにもVC++5.0までしかないし。
<質問です> ActiveXに引数渡すことあるとおもうんだけど その引数ってど〜やって取り出せばいいの?
467 :
デフォルトの名無しさん :02/10/22 17:20
VC6を使ってます。 クラスビューで何か操作(メッセージハンドラの削除とか)をすると 新規作成したクラスがビューから消えてしまいます。(CMainFrameとかCAboutDlgは 消えません)。ファイル自体は残っているのでビルドはできるのですが、かなり不便です。 ビューに既存のクラスを登録しなおすとかはできるのでしょうか?
>>467 クラスのヘッダファイル(*.h)を開いて保存すると復活することがある
>>466 ネタか?意味がわからんぞ。
というか、何がわからんのかわからんよ。
>>466 状況書かなきゃ何がやりたいのかさっぱり。
>>468 復活しました!
即答ありがとうございます!
>>469 >>470 スマソ
例えばこんな感じでHTMLに埋め込んでる時
<OBJECT classid=" 〜略〜>
<PARAM NAME="_cx" VALUE="10583">
<PARAM NAME="_cy" VALUE="5292">
</OBJECT>
ここで_cxに10583ていうデータを渡してると思うんだけど
_cxってActiveXのコードのどこにどのように宣言すればいいのでしょうか?
VARIANT型でどうにかならんか
474 :
デフォルトの名無しさん :02/10/22 19:15
コンソールアプリでキー入力したいんですが、 キーバッファが空なら他の処理をするってのはどうやればいいのでしょうか? getchar()とかはだめぽ。
475 :
デフォルトの名無しさん :02/10/22 19:21
一応、_kbhit()が使えるのね。他にあれば教えて( ゚д゚)ホスィ
>>465 会社には、VC++ 4.0 があるけど、WinMe がない。
Cの初歩的な事は何とかわかったのでVC++購入しよと思ってます。 6.0が未だに人気があるみたいなんですが、 .net はまだ使えないソフトなんでしょうか? ソフトのプラグインを作る予定でSDKが6.0とか書いてるんですが、 .net と 6.0 の互換性はあるのでしょうか? そのへんがさっぱりわからないです。 .net でも大丈夫なら安いし購入しようと思ってるんですが、 アドバイスお願いします。
479 :
デフォルトの名無しさん :02/10/22 23:07
478のいいたいことをまとめると、 .netは使えないんじゃないかと。 でもVCを使ってみたい、どうすればいいの? ってことです。誰かアドバイスお願いします
VC6.0を買え。またはダウソ
.netを買おうと思ってるわけですが、マズいですか? ああー。6.0ですかあ高いしなあ。ダウソ どこですか?って教えてくれないか。 どうしよう。.net使ってる人どうよ?
482 :
デフォルトの名無しさん :02/10/22 23:27
質問よろしいでしょうか。 MFCクラスを使ってUDP通信がしたいのですが、 LocalPortプロパティとRemoteHostプロパティって どうやって設定すればいいのでしょうか?
483 :
デフォルトの名無しさん :02/10/22 23:36
482を要約します。 MFCのクラスだけを使ってUDP通信がしたいのですが LocalPortプロパティとRemoteHostプロパティをどのように設定すればいいかわかりません。 知っている方がいましたら直ちに教えてください。 はやく!! といっています。皆様よろしくお願いします
どこが要約やねん(w
要約とか言ってる奴心底つまらんよ
要約すると。 ソ ー ス キ ボ ン ヌ !
>489 ブラクラ
Windowsアプリ作るのと、Linuxアプリ作るのどちらが難しいですが?
493 :
デフォルトの名無しさん :02/10/23 00:26
ダイアログベースのアプリケーションで、 ピクチャー のどこかがクリックされたことは検出できますか?
>493 できると思う。 クリックされたら GetCursorPos で座標を得れる。 と思う。
>>493 MFCならCStaticの派生クラス内でクリックメッセージを処理
>>494-495 ありがとうございます。MFCでVC6です。今、
//{{AFX_DATA(CTest1Dialog)
enum { IDD = IDD_TEST1_DIALOG };
CStaticm_picture;
//}}AFX_DATA
のようになってるんですが、このCStaticを、CMyStaticに変更
(このクラスは自分で実装)、でOKでしょうか・・?
>>496 それでもいいけどクラス追加したらClassWizardで選択できるよ
>>497 ありがとう
CMyStaticでクリック検知したら、適当な(俺定義の)メッセージでダイアログに通知するんでしょうか? ってそれでやってみます。
数日前からC言語の勉強を始めました。 入門書を1冊手に取り、毎晩少しづつですがコツコツと組んでいます。 始めてからまだ1週間も経ってませんが、勉強するにあたって何か目標のような ものが欲しいので、もし宜しければ私に課題のような物を与えてくれませんか? プログラムをするのは初めてなので、右も左もわからない状態ですが よろしくお願いします。
500 :
デフォルトの名無しさん :02/10/23 04:42
>>460 まだ見てるか?
たぶんDOSIME関連だと思う。
Adddrvがdos用のIMEの定義ファイル開けなかったメッセージのような気が。
ピクチャのプロパティで「通知」をcheckedにすれば、BN_CLICKEDイベントを
ハンドルすることでクリックを検知できました。
あとは
>>494 でどうにか。さんくす。
>>499 標準Cからはじめるってことだよね。
まずは、配列、関数、ポインタ、構造体ってところじゃない?
1)hello world と出力せよ
2)int 整数をつくり、任意の数に初期化して数値を出力せよ
3)int 配列を 10 個つくり、10〜19 まで代入して for ループで出力せよ
4)int 配列をグローバルにおき、for ループで出力する関数に変えるべし
5)4を int 配列へのポインタを使うように改造せよ
6)int 配列へのポインタと、個数を受け取って出力する関数に改造せよ
7)ランダムな値を代入するように改造せよ
8)7で作ったデータを今度はテキストファイルに出力せよ
9)8で作ったテキストファイルのデータ値に2を掛けて画面に出力せよ
こんな感じ?もっと良い例があるかもしんないけど・・
ケツメイシのトモダチ いい曲だなぁ。
>>499 んじゃ!
ペンタゴンの軍事ネットワーク「ミリネット」に侵入するプログラム作れ!
>>473 VARIANT型の変数をどこに宣言すればいいのでしょうか?
507 :
デフォルトの名無しさん :02/10/23 18:33
Visual C++ でrs-232cのシリアル通信でどうやるんでしょう? MSComm は Visual Basic のコマンドなんですか? デジタルボルトメーターを制御したいんですが。 どなたか教えてください。 お願いします。m(__)m
>>502 さん
どうもありがとうございます。
今までは本を見ながらしっかりした目的も無くプログラムを組んでいましたが
目標が出来たことでもっと力をいれて勉強できそうです。
いずれはプログラムを職として組んでいけるようになりたいです。
>>504 さん
それは、、、いつか考えてみます(汗
509 :
VC++初心者 :02/10/23 19:19
イリアなどのDLソフトのように取得した画像をかってに番号を割り振ってフォルダに 保存していく機能を持たせるにはどんな感じのプログラムにすればいいのでしょうか? 房な質問ですみません。使えそうな関数を教えてもらえれば幸いです。 まだ、学習したてで、コンストラクタを使えば良いのか、ただ単にハンドル渡して 組み立てれば良いのか混乱しています。 よろしくお願いします。
510 :
デフォルトの名無しさん :02/10/23 19:25
質問です。 CHtmlViewを継承したクラスを使ってブラウザを作っています。 右クリックしたときに独自のメニューを表示させたいのですが、どうすれ ばいいのでしょうか? 右クリックやコンテキストメニューのイベントハンドラを使っても、htmlファイル がロードされていると普通のIEコンテキストメニューが表示されてしまいます。
MDIで、開く画像の大きさと同じ大きさのウインドウを作りたいのですが どうしたらいいですか? viewクラスのPreCreateWindowのcsをいじっても何も変わらないし
512 :
デフォルトの名無しさん :02/10/23 22:36
.netでプログラムの結果をアニメーションできますか? たとえば、銀河形成シミュレーションの過程を視覚的にみたりとか。
514 :
デフォルトの名無しさん :02/10/23 22:57
movewindowわ?
516 :
デフォルトの名無しさん :02/10/24 02:59
VS.NETを買おうかと思ってます。 ですがいろいろなEditionがあってどれをどれを購入していいかよくわかりません。 アドバイスお願いします。 職業:大学生 装備:ゴールドカード(学生証) 目的:生涯の趣味のため。 使用言語:C++だがこの際VBやC#を覚えたほうがいいと思うならそれも・・・だけどわかんないです。 言語の展望も含めて教えて頂けると嬉しいです。 またゴールドがそう豊富にあるわけではないので書籍をがしがし買うわけにはいけません。
517 :
デフォルトの名無しさん :02/10/24 13:02
>>516 linuxをいれなさい。すべてタダでできるよ
>>516 バイトして書籍をがしがし買え。マジレスだ。
>>517 「Linuxはタダだから、金はWindowsにつぎ込め。そうすればどちらも楽しめる」ということ?
>>516 同じく大学生だが、Professional MSDN Deluxe Editionの優待版を買った。
「以前のバージョンが必要」と書いてあるが、なくてもインストールして普通に動かせた。
書籍は「入門C#プログラミング」みたいな1,500\ぐらいの安い雑誌でいいんじゃないの?
520 :
デフォルトの名無しさん :02/10/24 19:06
VS.NETを買うよりredhatを買ったほうが安上がり。 開発環境もそれなりにそろってるよん。 このさいWindowsをやめLinuxにしなさい
C++でいいならそうだね。逆に、C++の美味しい部分(template meta, generic, generative programming) を学びたいならVCは役不足。gcc-3.2が非常に無難。 皆に使ってもらいたいGUIアプリを作りたいなら別だけど。
>>519 Linuxには、プログラム環境がほとんどなんでも入っています。
入っていないのは、FTPサイト等で無料で配っています。
結論から言うと、なんらかの制約が無い限り、学生がMSを買う必要はないです。
ココはVC++スレだ!Linux房は消えろ!
両方死ぬほど使えますが何か? VCを崇拝するスレじゃないだろう? カス。
他でやってくれないか。ここVCを教えるスレだから。
>>524 お前馬鹿か?
初心者にVC++を教えるスレなんだよ。
Linuxなんぞどーでもいーんだよ!
Linuxを語るんなら他所逝け!
ボケ!
>>524 は言い返すのに必死になってここがどこだかわからなくなったんだろうな
Linux厨ってイタイな・・・
>>507 > Visual C++ でrs-232cのシリアル通信でどうやるんでしょう?
BuildCommDCB BuildCommDCBAndTimeouts ClearCommBreak
ClearCommError CommConfigDialog EscapeCommFunction
GetCommConfig GetCommMask GetCommModemStatus
GetCommProperties GetCommState GetCommTimeouts
GetDefaultCommConfig PurgeComm SetCommBreak
SetCommConfig SetCommMask SetCommState
SetCommTimeouts SetDefaultCommConfig SetupComm
TransmitCommChar WaitCommEvent
あたりを調べてミレ。
> MSComm は Visual Basic のコマンドなんですか?
どうでもいいけど、コマンドじゃないよ、コントロールだよ。
> デジタルボルトメーターを制御したいんですが。
どこの奴 ? メーカーでライブラリ提供してない ?
530 :
デフォルトの名無しさん :02/10/24 22:49
Linuxはまともな統合開発環境がないから気に食わん。
531 :
デフォルトの名無しさん :02/10/24 23:43
>>521 もしかして「役不足」の用法勘違いされてますか?
やくぶそく【役不足】 (1)俳優などが与えられた役に満足しないこと。 (2)能力に対して、役目が軽すぎること。「―で物足りない」
534 :
デフォルトの名無しさん :02/10/24 23:58
おぉ。初心者に教えてくれるスレなんて有ったんだ!! 本当に初心者で尚且つプログラムのプの字も知らなくても マスター出来たりするでしょうか…。 過去ログを今から漁ります。
>>531 じゃあ、どんな環境で開発しているの?
もしかして gcc + Emacs で満足なの?
だからLinuxは他でやれって。
Linuxってプログラム技術と関係ないんだから他でやれよ。
>>537 Linuxでの開発にはプログラム技術が不要なのですか。
HSPよりも素晴らしそうですね。(藁
レスありがとうございます<(_ _)>
Linuxについてですが「Windowsのアプリを書きたい、IDEに触れたい」というのがあるので
今回は見送らせてもらいます。
>>519 学生ならAcademic Editionのほうが良さそうな気がするんですがProfessionalを選んだのは
何か理由があるんでしょうか?
HSPもLinuxも他所でやれっつってんだろ? スレ違いだ!消えろカス!
>>539 Academicにはアクティベーションがあるからだね。ノートとデスクトップの両方にインストールしたかったから。
当時はMSDN Deluxe Editionに10,000\キャッシュバックがあったし。
C♯の使い方教えて欲しいな…
書き方悪かったかも。 文章不自由ですいません<(_ _)> 違いは表を見たら一目瞭然ですよね・・。 知りたいのはどういう目的で使用する場合違いが出てくるか?とか、 何か決まり事(例えばアクティベーションとかGPLみたいな)があるのか? を知りたいです。
546 :
デフォルトの名無しさん :02/10/26 03:37
VC++で、C言語のファイルを編集する場合、秀丸の関数一覧のような機能を ご存知の方おられませんか?
秀丸の関数一覧のような機能をJAVAでも使えますか?
>>546 関数一覧て左側のペインに出てるじゃん。
今、C++でDirectXフルスクリーンのプログラムを作っています。(開発はVisualC++6.0) フルスクリーンの状態で、ダイアログを開き、テキスト入力を受けつけ、 値を取得したいのですがどうすればいいのかわかりません。 ┌───────────────────┐ ├───────────────────┤ │| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| [ O K . ] │←フルスクリーンで こんなのん │. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [CANCEL]_ .| └───────────────────┘ APIでもVC++でもいいのですが、 なるべくシンプルな実現方法はないでしょうか。 #一晩中ネットのVC++サンプル等を見て回ってたのですが、 #あんなにズラズラ書かないと 上の機能は実現できないのでしょうか #〜.rcとかclwとかapsとか・・・ 一瞬、VBのInputBoxが懐かしくなりました(w
549 :
デフォルトの名無しさん :02/10/26 09:32
この業界入って、何の資格も取らずに40歳までいっちゃうとリストラ対象になるってホントですか?
550 :
デフォルトの名無しさん :02/10/26 09:43
VC++ まずは何から勉強すれば良いでしょうか? 参考書?チュートリアルHP? 色々教えてください。
551 :
デフォルトの名無しさん :02/10/26 09:45
553 :
デフォルトの名無しさん :02/10/26 11:53
VC++でCORBA使うにはどうすればいいんですか?
555 :
デフォルトの名無しさん :02/10/26 21:14
VC++6.0 で、次のようなプログラムを作りたいのですが… ボタン1を押したら、ある時間のかかる計算を開始。 計算中にボタン2を押したら、(適当なところで)中止。 しかし、OnButton1() の部分にその計算ルーチンを 入れてしまうと、ボタン2を押そうとしても押せませんよね。 この場合、どのように組むのが一般的なんでしょうか? 超初心者ですみませんが、よろしくお願いします。
556 :
VC++房 :02/10/26 21:16
pBuffer = (BYTE*)VirtualAlloc(NULL, Param.Image.BufferLength, MEM_COMMIT, PAGE READWRITE); で 1、(BYTE*)は何を意味するのでしょうか? 2、Param.Image.BufferLength は予約またはコミットするページ領域のサイズを、バイト単位で指定 することになるのでしょうか? お願いします、教えてください。
マルチスレッドって何
スッドレ!
>>558 MSDN で、マルチスレッドを検索汁。
そこに書いてあることが、理解できないなら、
>>555 みたいなことは、君にはまだ無理と言うことだ。
頑張って色々調べる/やってみるか、そう言うプログラムはあきらめるかのどちらかを選択しな。
>>557 >>560 >>558 は私ではないのですが・・・
>>558 さん、代わりに聞いてくださってありがとうございます(w
マルチスレッドですね。何とか頑張って調べてみます。
お答えいただき、どうもありがとうございました!
562 :
デフォルトの名無しさん :02/10/26 23:00
VC++6で、ブレークポイントで実行を停止したあとって、ステップ実行しかできないのでしょうか? 次のブレークポイントに出会うまで実行を再開することは不可能?
563 :
デフォルトの名無しさん :02/10/26 23:02
単にF5か・・・・
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
565 :
デフォルトの名無しさん :02/10/26 23:25
UNICODEを使いたいのですが、上手く動作してくれません。 間違ってますか…?お願いします。 char szData[20]; char szMulti[80]; memset(szData, 0, 20); memset(szMulti, 0, 80); strcpy(szData, "あ"); WideCharToMultiByte( CP_UTF8, WC_DEFAULTCHAR, (LPCWSTR)szData, -1, (LPSTR)szMulti, 100, NULL, NULL); MessageBox(szMulti);
・WCHAR/wchar_t szMulti[80] ・MessageBoxW
>>561 マルチスレッドについては「猫でも分かるプログラミング」と言うHPで見れば分かると思う。
ただしMFCではないので注意。
>>550 「まずは」か…。
とりあえず今はどれくらいのことができるのよ?
一般的には
C言語 -> C++言語 -> Win32 SDK -> MFC
って順序かな。VisualC++の開発環境の使い方もそれと並行して。
おっと「何から」って書いてあるから 「どの段階から」って意味かと思ったが違うのか? 「どの情報源から」って意味ならとりあえず全部だ。 自分で良さそうと思うのを選択して学ぶくらいできなきゃ駄目だぞ? そうそう、書籍に金を惜しんだり英語を敬遠するのもあまり良くないな。
570 :
デフォルトの名無しさん :02/10/27 00:21
初心者に Visual C++ なんか教えちゃだめです。 まず Delphi を教えてから、ANSI C++ を教えて、C++ Builder を教えましょう。 そしたら、VCL のソースの読み方と Win32 SDK を教えましょう。 いまどき MFC なんて読ませたら、まともなライブラリ作られへんようになって まいます。 それから、Java 2 SDK のライブラリのソースも参考に読ませるといいでしょう。 VCL よりもオブジェクト指向的に洗練されているし、いろいろなデザイン・ パターンが使われていて勉強になります。
ANSI C++って何ですか?
572 :
デフォルトの名無しさん :02/10/27 00:28
>>569 そうそう。
なんであれ本気で技術を身に付けようと思ったら、お金と時間をケチってはいけません。
それがいやだというなら、技術習得はあきらめることです。
>>567 おっしゃる通り、MFCでやろうとしていました…。
教えていただいたHPですがとても分かりやすいので、
ここを参考にして、SDKから学ぼうと思います。
本当にありがとうございました。
>>568 おいおい、普通は
C言語 → Win32 SDK
↓
( C++言語 → MFC ) opt.
じゃないのか?
それだと、Win32 SDK に C++ が必須のように見える。
すごいすみません。 VC++のパッケージってエンタープライズとかプロフェッショナルとかアカデミックとか 色々ありますが、これらの違いはなんでしょうか? もしこれで作ったソフトを売ろうと思ったら、アカデミックなら売ってはいけないとかあるんでしょうか?
>>575 自分を厨房と呼ぶな。教えて君と名乗れ。
自分で調べる手間を惜しむならそうすべきだ。
エディションの違いは全部パッケージに書いてあるから確認しろ。
商利用はアカデミックでも問題ないはずだ。
>>576 >商利用はアカデミックでも問題ないはずだ。
「そのエディションで商利用が大丈夫なら」だね。
>577 ああそうだ、すまそ。
579 :
デフォルトの名無しさん :02/10/27 05:43
はい。
>>579 typeof 演算子を使って、一体何をやりたいの?
>>583 ああ了解。
でも、
| #define ARRAY_SIZE(name,type) (sizeof(name)/sizeof(type))
| にしておいたのですが、template使ってnameがポインタだった場合に
| コンパイルエラーにすることはできないでしょうか?
で、name がポインタかどうかわからない局面ってあるのかな?
コーダーがよっぽどのチョンボをしてない限りチェックの必要は無いと思うけど。
>>584 そうですね。作ってみたい衝動にかられただけで、必要かといえばそうでもないように思います。
>>58 違う。
もしまだ解決してないなら何か書いとこうかと思って。
一口で言える話ではないんでガイドライン的なものになるけど。
難しい質問じゃないんで、もう解決してるか。
589 :
デフォルトの名無しさん :02/10/27 08:58
VC++.NETで、C言語を使ってDOSアプリを作りたいのですが、 カーソル移動とか、文字の色を変えるとかの関数ってありますか?
VC.NETでは16bitDOSアプリは作れないだろ。 32bitコンソールアプリの話なら、 SetConsoleCursorPosition SetConsoleTextAttribute あたりを使え。
591 :
デフォルトの名無しさん :02/10/27 09:11
>>590 お答えいただきありがとうございます
えっと、他にもどんな関数があるのか見たいのですが・・・
ヘルプのどこを見ればいいのかわからないです・・・。
関数のリファレンスは、どこにあるのでしょうか?
592 :
デフォルトの名無しさん :02/10/27 09:43
>>588 外野だけど興味はある。
「FSWindow見ろや!」というのだったらどうでもいい。
593 :
デフォルトの名無しさん :02/10/27 12:45
>>591 逆引きしる。たとえばSetConsoleCursorPositionをヘルプで検索表示した後、
ツリーを同期させればいい。.NETは知らないが、多分同じだろう。
>>556 Cスレでも聞いてただろ!
1 BYTE* = unsigned char*
2 「バイト単位」と MSDNに出てるだろ! ただし予約(コミット)された領域は
ページ境界(64kB境界)に切り上げられる。すなわち、実際に予約(コミット)
される領域は 64kB単位になる。
595 :
ボルフェス :02/10/27 18:41
>>595 =ボルフェスは単発質問スレたて野郎なので放置。
>>574 う。そりゃそうかも。
先にソースコードの拡張子をCPPにしておいた方がAPIの勉強する
ときもなにかと便利かと思ったんだが。
でもextern "C"とかやな問題もあるか…。
598 :
デフォルトの名無しさん :02/10/28 01:33
カーソルの座標をスクリーン座標からビュークラスの座標に 変換しようとしたんですが POINT CursorPt; GetCursorPos(&CursorPt); MapWindowPoints(this,&CursorPt,1); どこがダメですか?
>>598 ( `Д) <自分のWindowを変換元の基準にしてどうするんだ?
/(ヘ つ )ヘ MapWindowPointsの第一引数をHWND_DESKTOPにしる!
つーか、この場合、ScreenToClientの方がいいと思うが。
俺はC→MFCだ。その後Win32APIに。 Win32APIや標準C++知らなくても入門書見ればある程度動くものはできちゃうのがMFCなんだよな。 あ、もちろんWin32APIとC++わかってるに越したことは無いんだけど。 結局こういう話題で最終的にたどりつくのは 「本人にやる気があればなんとでも」ってことに。
( `Д) <あ、CWnd::MpaWindowPointsはこの場合使えない。 /(ヘ つ )ヘ
603 :
デフォルトの名無しさん :02/10/28 02:20
>>602 ScreenToClientでできますた。どうもです。
・・・確かにmap・・・はこの場合使えませんね・・・
あほでした。
extern "C" void _stdcall SystemFunc( SYSTEM_FUNC *Param ) { ・・・ } システムコールバックの最初の行なのですがどのような操作をしているのでしょうか? さっぱりです。ユーザー関数定義のように見えるんですが
すみません解決しました。ほかの言語の関数を宣言する際にextern "C" が必要な んですね。
606 :
デフォルトの名無しさん :02/10/29 08:29
タブコントロールの特定タブにフォーカスを移すにはどのようにすれば良いのでしょうか? タブをクリックするとそのタブが選択された状態になりますが、それをプログラム側でやりたいのですが・・
TCM_SETCURSEL
>>607 出来ました、ありがとうございました。m(._.)m
609 :
デフォルトの名無しさん :02/10/29 14:47
CListCtrlで、SubItemを編集可能にするにはどうしたらいいのでしょうか?
610 :
デフォルトの名無しさん :02/10/29 14:53
ダイアログベースのアプリではドーヤンノサ
612 :
デフォルトの名無しさん :02/10/29 17:48
フォーカスを現在のウィンドウからデスクトップに移動させる事は 可能なのでしょうか? GetDesktopWindow()->SetFocus(); と書いたらコンパイラに怒られますた。
::SetFocus( ::GetDesktopWindow() );
615 :
デフォルトの名無しさん :02/10/29 22:43
CHtmlViewでイベントハンドラOnMouseMove() が使いたいんですが、何故か反応してくれません。 どうすればいいのでしょうか?
616 :
これ解りますか? :02/10/29 22:46
/*1秒ごとに0〜99までの数値を画面に表示するプログラムを作成する。 数値は9ごとに改行し各数字の間隔は48ドット空けること*/ このプログラムに手を加えて(手直し)作ってください。お願いします case WM_CREATE: { SetTimer(hWnd,1000,1000,NULL ); } break; case WM_TIMER: { HDC hdc; char string[8]; wsprintf(string,"%d",suti); TextOut(hdc,0,48,string,strlen(string) ); } break;
WM_PAINTが無いことといい、 wsprintfのreturn valueを使ってないことといい、 GetDCしていないことといい、 変数名がsutiといい、 ト コ ト ン 糞 い コ ー ド だ な
しかも多分自分で書いたコードではないと思われ。 超越的マルチだから放置。
619 :
デフォルトの名無しさん :02/10/30 14:32
SetWindowLongでサブクラス化した先の関数(プロシージャ)に 構造体のポインタを渡したいのですが可能でしょうか?
>>619 同一プロセス内なら、何か適当なメッセージに LPARAM か何かで送ってやる。
違うプロセスだったらメモリ領域が全然別なので無理。
621 :
デフォルトの名無しさん :02/10/30 15:42
あるデバイスコンテキストの絵を実際に画面に出力している デバイスコンテキストへのコピーのやり方を教えてください。
>>620 LPARAMでやってみます。
ありがとうございました。
ScrInfo->BitMapInfo.bmiHeader.biSize = sizeof( ScrInfo->BitMapInfo.bmiHeader ); ScrInfo->BitMapInfo.bmiHeader.biWidth= ScrInfo->Width; ScrInfo->BitMapInfo.bmiHeader.biHeight= ScrInfo->Height; ScrInfo->BitMapInfo.bmiHeader.biPlanes= 1; ScrInfo->BitMapInfo.bmiHeader.biBitCount = 24; このプログラムでは、ビットマップのサイズを求めて ScrInfo->BitMapInfo.bmiHeader.biSize に格納していると解釈して良いでしょうか?
>623 ちがう。ヘッダだけのサイズです。
625 :
デフォルトの名無しさん :02/10/30 18:28
あとビットマップの計算方法なんですけど //BITMAP情報の取得 BITMAP bi; ZeroMemory(&bi,sizeof(bi)); if(GetObject(bmp,sizeof(bi),&bi) == 0)return FALSE; //ファイルサイズ計算 LONG filesize = bi.bmWidthBytes * bi.bmHeight + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); LONG bpp = 0; : : としたんですが、bi.bmWidthBytesは取得したBITMAP情報のWidthByte数で良いで しょうか?
627 :
デフォルトの名無しさん :02/10/30 20:00
あるデバイスコンテキストの絵を実際に画面に出力している デバイスコンテキストへのコピーのやり方を教えてください。
628 :
デフォルトの名無しさん :02/10/31 00:38
CHtmlViewをいじってるんですが、HTML内の画像を取得するにはどうしたらいいですか? GetHtmlDocumentの後、get_imagesをやってみましたがよくわかりません。 画像を取り出して別ウインドウに表示させるというようなことをしたいのですが…。
>>457 そうです。
でも、なんか使う必要なくなったっぽい
630 :
デフォルトの名無しさん :02/10/31 23:42
Visual Studio.NETインストールしてC++.Net使ってるんですが 例えば「HelloWorld」を表示させるソースを書いたとして、どうやって実行するんですか? アホみたいな質問ですけど教えてください。
631 :
デフォルトの名無しさん :02/10/31 23:53
>>630 ビルドしろ
つーか素直にVisualC++初心者用の本を買え
いや、なんやらかんやらエラー出るのよ。 Cygwinもエラーでるし。もう目の奥がいてーや。
HelloWorldで解決困難なエラーが出るとはどうしても思えないんだ
デバッグしろ
>「HelloWorld」を表示させるソース を見せてみろ
こういう人ってたいていソースよりプロジェクトの設定とかに問題がある
それは、全角で空白や{}を入力しているからだ! と、過去の経験から予想してみる。
638 :
デフォルトの名無しさん :02/11/01 03:15
: error C2601:'SaveBitmapFile' : ローカル関数の定義が正しくありません。 って言われちゃったんですが、バグ取るのにどのへん見たら良いんですか? この手のバグは大体カッコの位置が悪いと思ってたんですが今回はそんなこ と無いようなんで、わかんないす…。
>>638 それ 「HelloWorld」 じゃないだろ絶対・・・。
つーか、エラーメッセージの内容と指し示している行番号が全てを物語ってる
んだからそれで解決せい。
640 :
デフォルトの名無しさん :02/11/01 09:39
WINDOWS+VC6+SDKでツリーコントロールを作りました。 で、複数選択させるにはどうすればいいんでしょう? 誰か教えてくださいまし。
641 :
デフォルトの名無しさん :02/11/01 10:08
できねーよ。 MFCでやりな
642 :
デフォルトの名無しさん :02/11/01 13:11
char型配列に文字列が格納されていて、そのポインタを作成し、 ポインタを使って文字列の中の特定文字(改行コード\r\n)をある文字に置き換えたいのですが 可能でしょうか? Perlの s/\r\n/置換文字/ のようなことをやりたいのですが・・。 #無いようなら自作する予定です。。
char型配列は文字の配列であって文字列じゃねーよ。 文字の配列に高度な機能を期待するな。
一文字単位の置換処理なので自作しました。 お騒がせしました。m(__)m
647 :
デフォルトの名無しさん :02/11/01 15:45
>641さん 640です。 やはり無理ですか・・・しくしく
SDKの質問に「SDKじゃできなくてMFCじゃできる」って答える奴は今後答えなくてよし
SDKじゃできなくてMFCじゃできる。
BREGEXPマンセー。
さんざガイシュツだと思うけど vc7の変更で stl::vector<T>::iterator が T* と型が違うんだけど どう書けばいいのん? (void*)vec.begin() とかも変換できねーってエラーでるよん
>>651 T* を要求する時点で厨。
vector<> にそんな規定は無い。
普通に *itr で実体出てくるだろ。
iteratorをポインタと思うな。
ほげ。vectorの先頭から終わりまでファイルに書き出すようなプログラムなんだけどさー どう書けばいいの? 要素の先頭アドレスがほしいのさー
>>654 普通に for か for_each() で回せばいいだろ。
何で先頭の要素のアドレスなんか必要になるんだ?
まさか、vector<> を配列とみなして扱ってないだろうな?
>>651 > さんざガイシュツだと思うけど
いいやあんたみたいな DQN は初めてだ。
>654 &vec[0]でもやっとけ
>635 #include<stdio.h> int main(void) { printf("HelloWorld\n"); return 0; } これでいいでしょ? ビルドってソリューションのビルド?やると ---------------------- 終了 ---------------------- ビルド : 1 正常終了、0 失敗、0 スキップ これがでる。 それからどうするんだ??? ちなみにデバックの開始かなと思ってやったら ・・・を読み込みました。必要な DBG ファイルが見つからないか、開けません。 とかシンボルが見つかりませんとかメッセージが出てる。 で、真っ白なウィンドウが出てくるだけ。 学校じゃUNIXでやってるからよくわからん。
ええ?まじっすか?
>>659 ・・・実行してくださいよ。デバッグでもビルドでもなく。
662 :
デフォルトの名無しさん :02/11/01 18:42
複素数を配列要素としたい場合、配列の宣言は complex<double>E[i];でよいんですかねぇ。。
>>641 MFCでできることはSDKでも出来んか?
なんで入門書とかMSDN読まないんだろうね
666!
>665 早急に課題を仕上げたくて昨日インストしたばっかりだから。 やっぱいまいち使い方わかんないから連休中に本屋にでも行ってみる。 Cygwinでのコンパイルは出来たけどな〜。実行が出来ない、、、。
669 :
デフォルトの名無しさん :02/11/02 00:08
Debug Error!ってのが出たんですけどどうすれば・・・
すんません。テキストファイルを1行ずつ読み込む方法を 教えていただけませんか?
見つけたっぽいです。すいません。
672 :
大きなしっぽの古ダヌキ :02/11/02 00:59
663よ。 本当はこーやるのよん(by MS) だ・け・ど、あたしの意に添わない方や五月蝿い方はには これをあげるわ → SDK。 あたし言うことを聞く余計なことをしない良い子は やさしく簡単にしてあげるわね → MFC 賢い子は両方使ってね。 まちがってもオブジェクトぢゃないなんて駄々こねないでね。 と言うことだ。 640の厨房はもっと気張らんといかん。 それでは私の歌を聞いて頂戴・・・
673 :
デフォルトの名無しさん :02/11/02 14:26
関数にクラスポインタを渡して、受け取ったクラスポインタを構造体のvoidポインタに格納して その構造体のポインタを別の関数に渡して、構造体ポインタのvoidポインタから クラスポインタを取得してそのクラスポインタを使って処理。 ファイルを分けたり、関数を細かくまとめるとこんな面倒な処理をしないと駄目になり鬱・・・
ポインタのポインタのポインタと関数を渡り歩いて 終着点でちゃんと受け取れてるんだから凄い・・。 自分でもわけわからない・・。 途中にバグあったらあったら・・死ねる・・。
クラスポインタとvoid*を相互変換しているだけで、 ポインタのポインタのポインタなんて使っているように見えないが?
(,, ゚д゚) ┳┳┳┳┳
678 :
デフォルトの名無しさん :02/11/03 13:39
エディタ等でウイドウの分割機能とかありますが、2つに分割したウインドウの間を マウスでドラッグした状態で動かすとサイズが変更できますがあれはどのようにしているのでしょうか? わかる方が居ましたらヒントだけでもいいので教えていただけると嬉しいです。m(__)m
>678 移動されたら各々のウインドウサイズ調整する。
ちょっと説明不足でした・・ 2つのウイドウの間にマウスカーソルが来た時の処理なのですがどのようにすれば良いのでしょうか? ┏━━━┓ ┃┏━┓┃ ┃┃ ┃┃ ┃┗━┛←ここにマウスカーソルが来た時の処理 ┃┏━┓┃ ┃┃ ┃┃ ┃┗━┛┃ ┗━━━┛ #現在は上にリッチエディットボックス、下にエディットボックスをダイアログに貼りつけています
>680 そんなこと言われてもそのまんまだが? サイズ変更されない方のウインドウサイズを変更してやればよい。
>>681 了解です、ありがとうございました。m(__)m
スプリッタ? Splitterとかで検索掛ければ沢山サンプルが出てくると思われ たしか、猫でも簡易スプリッタやってた気がする
684 :
デフォルトの名無しさん :02/11/03 17:38
for(i=0;i<256;i++){ for(j=0;j<256;j++){ pDC->SetPixelV(j,i,RGB(j,j,j)); } } 完全に表示されるまでえらく遅いんですがなんとかなりませぬか?
>684 縦の線を256本引いたらあかんの?
686 :
デフォルトの名無しさん :02/11/03 17:56
実際にはもっと長い計算式が入ります
>686 SetPixelがほんとにボトルネックだとしてだが、 メモリ上にbipmap直接描いてからbitblt()でどうか。
688 :
デフォルトの名無しさん :02/11/03 18:16
メモリ上にBitmapをつくるやり方が良く分からんのです。 CDC DC;CBitmap bmp; DC.CreateCompatibleDC(pDC); bmp.CreateCompatibleBitmap(pDC , 256 , 256); . . pDC->Bitblt(0,0,256,256,&MemDC・・・) ↑全然的外れですか?初心者でスマン
689 :
デフォルトの名無しさん :02/11/03 18:30
すいませんちょびっとだけ間違えてました。
できました。
ありがとうございました。
>>687
690 :
デフォルトの名無しさん :02/11/03 22:59
アクティブな構成がデバックだとエラーが出て、 リリースだとエラーが出ないって 何が原因ですか?
エラーって、どんな? ASSERTの類ではなかろうな?
>690 エラーメッセージを書きたまえ。
693 :
デフォルトの名無しさん :02/11/04 00:16
適当にやったら出来ました。
695 :
デフォルトの名無しさん :02/11/04 00:29
ちょっとスレ違いですが・・・ よく、「バッファオーバーフローが原因でセキュリティー上の問題が有ります。」 みたいな警告がありますが、このバッファオーバーフローとはどんな問題なのですか? また、これを利用してシステムを乗っ取るとは? 質問ばっかで申し訳ないですが、Cとか詳しい人ならわかるかなと思ったので。
>695 とてもスレ違いだが。 関数呼び出しがリターンアドレスをスタックに積み、 自動変数もスタックに確保される事を知っていれば あとは想像できるだろ。 詳しく知りたければ、exploitをキーワードに検索してみ。
>>697 わざわざどうも。
検索してみたところ、IBMのサイトに詳しい解説がありました。
スタックに積んであるアドレスを書き換えて、ヤバイ関数に飛ばしちゃうみたいなイメージは
有ったのですが、それとバッファをあふれさせることがどう関係するのかがよくわからないんです。
もう少し読み込んだらわかるかな。
>>697 そこまで判って何でわからんのか?
バッファ溢れた先にリターンアドレスがあるだろ。
スタックを理解してないのかバッファ溢れの意味を理解してないのかのどちらかだな。
スタック [bf][bf][bf][re][__] 長すぎる入力でーた。 [FF][FF][FF][XX][__] XXにリターン。 (たとえば、XXが入力データの先頭で、入力データがバイトコードだったなら、) 任意のコードが実行されてしまう。
701 :
デフォルトの名無しさん :02/11/04 09:48
超初心者です。 C++で、CString型(あるいはchar型配列)の文字列に"(ダブルクウォート)を代入する方法 ってあるんでしょうか? コンパイラはVC++です。
str = "\"";
>>701 超初心者つうよりド素人だな。( ´,_ゝ`)プッ
>>699 こりゃどうも。
スタックもバッファ溢れもわかるんですが・・・。
スタックなんかは、なにかしら安全性が確保されてるはずみたいな思いこみがあったんです。
つまり・・・
スタックに積んである呼び出し元のアドレスを、バッファ溢れを利用して書き換え、
別に用意した処理へ誘導するということかな。
>>703 そう言うあんたは「自称上級者」だな。( ´,_ゝ`)プッ
test
>>704 > スタックに積んである呼び出し元のアドレスを、バッファ溢れを利用して書き換え、
> 別に用意した処理へ誘導するということかな。
その通り。理解してるじゃん。
>>709 いや、あんたが他人の無知を嘲る様な書き込みするからさ・・・・・・。
でも、確かに漏れも口が過ぎた。スマソ。
但、
>>701 のことを「教えて君」だと思っているのなら、その考えは改めて欲しい。
漏れが初めてVC++なる物と超初心者向の本を買って勉強を始めた時も、
何のことは無い1行が分からんが為に意味不明なMSDNと格闘したり、ネットで
情報を集めたり・・・・・・。気付けばその1行の為に半日が終わってた、何て事も
ざらだった。
あんたも、こんな事あっただろ?それを忘れんでくれ、ってこった。
>>710 でもココはVC++について教える板だろ?Cも分からん様だと…
まぁもうどーでもいーや。
>710 それを忘れていないから、安易に2chに聞きに来た701を 「教えて君」と認定し、罵倒しているのではないだろうか。 ところで706は701を「教えて君」以外の何者と思っているのだろうか。
>>711 確かに、そうだと言えばそうだが・・・・・・。
漏れはCとC++、同時に勉強したぞ。そう言う趣旨の本だったからな。
こういう場合、そう言われても如何しようもないと思うが・・・・・・。
スレ違いスマソ。もうこの話題は終わりにしませう。
と思ったら・・・・・・。
>>713 確かに、それも1つの意見。漏れは、
>>701 は「考えあぐねた末、どうしても分からん
から着た」んだと解釈したが。
しかし、今改めて見ると、
>>701 が書き込んだ時間「09:48」・・・・・・。
これは、
>>713 の意見の方が正論かもしれんな・・・・・・。
716 :
デフォルトの名無しさん :02/11/05 01:02
初心者です。教えてください。
717 :
デフォルトの名無しさん :02/11/05 02:13
double型のデータをsprintfを使って文字列にして表示しているのですが 値が小さく(大きく)なってきたとき 0.0000000000000001→1E-16のように 簡単に変える方法無いですか?
720 :
デフォルトの名無しさん :02/11/05 03:07
ifと%e使えば簡単に出来そうですね・・・ どうもです
721 :
デフォルトの名無しさん :02/11/05 11:59
自作ソフトで挿入・削除などを行うデータ構造を作ろうと思ってますが、 C++のVectorは1種類の型しか収納できませんよね? いろんなクラスを収納したいのですが、いい方法はありませんか?
boost::any
724 :
デフォルトの名無しさん :02/11/05 12:53
C++やろうと思って人様のホームページとかあさっているんだけど、 いちいちウィンドウ切り替えて入力しているとどうも面倒くさいので お勧めの参考書をひとつおせーてください。
あ、ごめんなさい。下のほうに参考書スレありましたね。 きづかなかった。本当にごめんなさい…なんかあったら 何れ訊きに来させていただきます。
726 :
デフォルトの名無しさん :02/11/07 02:23
ウインドウの閉じるボタン押した時の処理を変えたいんですが どうすれば出来ますか? destroyではなくShowWindow(SW_HIDE)にしたいんですけど
>>726 case WM_CLOSE:
ShowWindow(hWnd, SW_HIDE);
break;
729 :
デフォルトの名無しさん :02/11/07 10:48
730 :
デフォルトの名無しさん :02/11/07 11:18
2chブラウザを使うにはVC++6.0とかMFCのランタイムライブラリが必要 とあるのですが、これは何の事なのでしょーか?
実行ファイルを小さくするために共有DLLを必要とするから。 MFC30.DLLとかMFC42.DLLとかがシステムフォルダー にインストされているなら使える。
VC++6.0の質問です。 (CFrameWnd派生の) 追加フレームクラスでツールバーを有効にしたいのですが・・・ メンバ変数に CToolBar m_wndToolBar; を追加して、OnCreateメンバ関数で if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_追加フレームのメニュー)) { TRACE0("Failed to create toolbar\n"); return -1; // 作成に失敗 } としました。すると表示はされるのですが、有効になりません。 よろしくお願いします。
733 :
>>732の初心者。。。 :02/11/07 23:09
SAGEてしまいました。すいません。
有効ってなんだろ。ハンドラを追加してないとか。
>>734 ハンドラ追加したらできました!
ありがとうございました!
OLEのDragDropを実装しようと思い、 static IDropTargetVtbl dtv = { OLE_IDropTarget_QueryInterface, OLE_IDropTarget_AddRef, OLE_IDropTarget_Release, OLE_IDropTarget_DragEnter, OLE_IDropTarget_DragOver, OLE_IDropTarget_DragLeave, OLE_IDropTarget_Drop }; と初期化しようとすると、「構文エラー : ';' が、識別子 'dtv' の前に必要です。」 とエラーが出てしまいます。'oleidl.h'をインクルードし、この他にシンタックスエラーも 無いと思うのですが、どなたか原因のわかる方いますか? ちなみにC++でビルドすると、上記のようなエラーが出ます。Cだと出ません。 VC++6.0,Windows2000,SDKで組んでます。よろしくお願いします。
>>736 初期化だけなら
OleInitialize(NULL);
でいいと思ふ。
↑はMFCですた。SDKは知りません。
736 はもっと C/C++ の文法的な問題だと思ふ 宣言より前を見ないと分からないけど
>>736 oleidl.h の中身
#if defined(__cplusplus) && !defined(CINTERFACE)
...
...
#else /* C style interface */
typedef struct IDropTargetVtbl
{
...
CでOLEするのはマゾ的行為。
743 :
デフォルトの名無しさん :02/11/08 02:43
リッチエディットボックスに改行を含んだ大量の文字列があり それを別のリッチエディットボックスに移し変える場合、 GetWindowText、SetDlgItemTextを使う意外で 安全かつ、確実に行う方法って何かないでしょうか?
malloc使ってGetWindowText、SetDlgItemTextでやりました。^^; お騒がせしました。。
みなさんレスありがとうございます!
今作っているアプリはOLEとはあまり関係がないもので、ちょっとDragDropの機能を
つけてみようと簡単に考えていたのが甘かったようです。
>>739 さんが紹介してくれたサイトなどを参考に勉強しなおしてきます。
>>741 すっかり見落としてました(汗)... それが原因だったようです。本当に感謝です。
>>739 俺はMFCで組んだこと無いんだが、MFCはなんかクラスの数が多すぎて、何からやっていいのか分からん。
そのうちやろうかと思っているんだけどな。
747 :
デフォルトの名無しさん :02/11/08 11:38
最近になって[ビルド]-[デバッグの開始]-[実行]を選択すると、 かならず -------------------------- 1つ以上のファイルが更新されていないかまたは存在していません。 これらのファイルはビルドする必要があります: .\Debug\hoge.dll .\Debug\Choge1.obj .\Debug\Choge2.obj .\Debug\Choge3.obj ・ ・ ビルドを行いますか? [はい] [いいえ] [キャンセル] -------------------------- とメッセージボックスが出るようになりますた。 実行前にビルドはしていて、中間ファイルその他は全て存在しているのに かならず聞かれます。 ウザいので聞かれなくする方法はありますか?
>>746 CDialogからはじめるのがお薦め。
それからSDI-->MDIと。
どれもCWndを使いこむ事になると思う。
それでも駄目ならCString,CArrayでもやっとけ。
STLが使えればそれに越した事ないが、
749 :
デフォルトの名無しさん :02/11/08 13:17
だれかBOOLとboolの違いを教えてくれませんか?
bool→0か1 BOOL→0かそれ以外(中身はint)
VisualC++は、怪奇現象みたいにぐっちゃぐっちゃな仕様だから、 理解してくると、理解できないやつに対してヘンな優越感が。 自分のホームページで偉そうにVC++のテクなどを説明してる 連中は、だいたい優越バカ。
サンクス
私は線形リストが理解できないんで Vector使おうとおもうけど、これじゃプログラマ失格 なんだろうか・・・
ビビッ・・・ 受信しました。
756 :
デフォルトの名無しさん :02/11/08 13:54
>>749 boolのサイズは1byte
BOOLのサイズは4bytes
>>747 リビルドするか、*.ncb *.opt *.aps ファイルを消してみるか、それでだめなら
ソースファイルのタイムスタンプを何かのツールで現在日時に書き換えてやる。
>>757 サンクスです。
.ncb と ソースの1つが 2003年になってたので
現在日時にしたら解決しますた。
>>751 そういうサンプルのお陰でかなり助かってるんですが・・
世話になってるんで自分のHPでも簡単なサンプル作ってます。
#かなりしょぼいですが・・
751 は人を馬鹿にする事しかできない無能
761 :
デフォルトの名無しさん :02/11/08 20:21
>>751 s/Visual//;
s/VC/C/;
で同意。Lokiの作者はキチガイ
>>751 おぃおぃ。
そう言うHPのお陰で、一体何人の人が助かっていると(以下略
ありがとう!CodeProject!
なんつーかスレ違いだからそのへんで放置したってくれよ<751
767 :
デフォルトの名無しさん :02/11/11 09:24
不毛の論議になるかもしれないですが MFCは使うべきなのか、使わないべきなのか いったいどっちなのでしょうか? MFC使うとGUI作るのにはかなり楽になるけど 細かいところにまでは手が出せないし MFC使わないとGUI作るのとんでもなくたいへんだけど なんでもできてしまうし。 どうすればいいのでしょうか? どっちも扱えるというのがいちばんいいのでしょうか? MFCという言語を習得するような気がして ちょっといやなんですけどね。 WinMainを自分で書いて、WndProcでハンドらを自分で書くほうが 全体の見通しがいいので、個人的には好きなんですが 画面作るのがとにかくめんどいですね。
↑バカ
としか言えない馬鹿、かわいそう
770 :
デフォルトの名無しさん :02/11/11 10:32
SDK でプログラミングしてると、C++ のキャスト (reinterpret_cast とか) を 使ってるのがバカらしくなってくるのですが、遠慮無く C のキャストを使って いいですか?
>>767 道具ってのは用途に合わせて使うもんだぜ。
それで、その道具を知らなければ使い分けの
判断もできない。
772 :
デフォルトの名無しさん :02/11/11 11:38
パラメータヒントがでなくなる事があるんですが なぜですか?
>>772 VC++ の仕様 (バグ?) だそーです。
*.ncb とか削除したりリビルドしたりすると直ったりするそーです。
774 :
デフォルトの名無しさん :02/11/11 12:39
VCを始めて2ヶ月の者です。 「CStringを使用するとメモリーリークするから、 char型を使用したほうがいい」 と会社の人にいわれました。本当ですか? CMemoryStateとかでメモリチェックしても、 メモリリークの痕跡はみあたらないのですが・・
775 :
デフォルトの名無しさん :02/11/11 15:42
>>774 その先輩がミスしているに1票。
百歩譲ってもCStringの変わりに
char型を薦めるな!
std::stringを薦めろと言いたい。
しかしローカルでの一時的なバッファ
としてならcharやらTCHARはよく使うYo。
>>775 同じことを思ったがネタだと思ったので言わなかった。
MFCのCListViewで、スクロールバーが出るくらいの複数のアイテムがある場合に、 ユーザ操作で下の方にスクロールして、DeleteItemでアイテムを削除すると、 デフォルトで先頭アイテムまでスクロール戻っちゃいますよね。 これが、戻らないようにするためにはどうすればいいでふか?
>>776 ネタではありません。
本当に言われました。
一応自分でもネットで調べてみました。
(本当にCStringでメモリリークするなら、
それらしき報告があると思ったので・・)
しかし、どのサイトにもメモリリークが発生するなんて
報告はありませんでした。
なので、VCを知っているみなさんに質問したわけです。
779 :
bloom :02/11/11 18:03
>>777 戻らないけど・・・
DeleteItemした後その場所のアイテムを選択する
>>775 レスありがとうございました。
>>780 「CStringがメモリリークする」根拠は聞いてみました。
曰く、
1.以前やっていたプロジェクトで、メモリリークのバグが発生した。
2.あるルーチン内でリークが発生していることがわかった。
3.ルーチン内のCStringをchar型にしたらある程度のリークが解消された。
3.CStringはメモリリークするのでchar型を使用したほうがいい。
だそうです。
一応、他の人にも聞いたのですが、普通にCStringを使っているとのことでした。
ある程度っておいっ
CString* pString = new CString("hogehoge") とかやってて、消し忘れてるだけなんじゃないのかなー?とか思ったり思わなかったり。
785 :
デフォルトの名無しさん :02/11/11 20:52
>>783 禿同。
たまたまイイ結果が出ただけで
結論するとは恐ろしい。
ウインドウプロシージャの関数ポインタを作ろうと、 LRESULT (*foo)(HWND, UINT, WPARAM, LPARAM) = WndProc; とやったところエラーが出ます。 何が間違っているのでしょうか? VC6です
呼び出し規約が足りない。
>>787 素直に WNDPROC 型使ったら?
ちなみにその定義は <winuser.h> で
typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
VC++6.0での質問です。 ボタンをクリックしたらスタティックテキストに書かれた文章が 他の文章に切り替わる方法というのを調べていますがなかなか解りません。 どなたか教えていただけませんでしょうか?
>>790 状況によって方法が変わる。
クラス名 STATIC で FindWindowEx() とかしてウィンドウハンドル取って、
あとは SetWindowText() とか。
>>790 GetDlgItem( id )->SetWindowText( string );
みたいな感じ?
ありがとうございました。無事できました!
794 :
デフォルトの名無しさん :02/11/12 07:54
はじめまして。 LoadUserProfile関数について質問が有ります。 この関数が 指定したユーザーのプロファイルをロードします。 という役割を持っているのは分かるのですが、 この関数を呼ぶだけでロードは完了しているのでしょうか? このあとCreateProcessAsUserを呼んだときにはユーザーのプロファイルが 有効になっているのでしょうか? それともこの関数を呼んだ時に得たハンドルをCreateProcessAsUserに 渡さなくてはいけないのでしょうか? (CreateProcessAsUserへ渡すハンドルはLogonUserで得た値なのか LoadUserProfileで得た値なのかということです。) このあたりがいまいち分かりません。 回答よろしくお願いします。
795 :
デフォルトの名無しさん :02/11/12 20:59
フレックスグリッドコントロールを使用してみたんですが、 必ずMSFLXGRD.OCX が別に必要になってしまうんですか? exe内にいっしょくたにして、OCXとか必要なくしたいんですができませんか?
>>795 あたりまえ。
それが出来るのはOCXとは言わん。
>>796 では、Flexgridのようなシートを、ocxを使わずにやりたい時はなにが一番いいですか?
そういうコントロールを書く。 たとえば、ListViewをOwnerDrawするとかだな。 CodeGuruにコードがあったが、、 正直ocx使ってた方が楽な気もする。
799 :
デフォルトの名無しさん :02/11/13 05:43
SJIS文字を「あ」だったら「%82%A0」のようにURLエンコーディングしたいのですが、 一発で出来るような関数等はあるのでしょうか? 無ければ自作する予定です。
自作してみたら意外と簡単に出来ました。^^; お騒がせしました。。
801 :
デフォルトの名無しさん :02/11/13 12:17
>>801 URL エンコードくらい、そらで書けないか?
char *EncodeURLString(const char *Src)
{
char *Dest, *Buf = (char *)malloc(strlen(Src) * 3 + CGI_MEMORY_MARGIN);
if(DestStr == NULL)
return NULL;
for(Dest = Buf; *Src; Src++)
{
if(*Src == ' ')
*Dest++ = '+';
else if(isalnum(*Src))
*Dest++ = *Src;
else
Dest += sprintf(Dest, "%%%02x", 0x00FF & (int)*Src);
}
*Dest = '\0';
return Buf;
}
あ。 CGI_MEMORY_MARGIN は 1 ぐらいにしといてくれ。
>>802 スマートなコーディングですね。(関心)
漏れのやった方法は配列に%80とかを全てセットしておいて(かなり処理の無駄…)
一文字ずつアスキーコードを調べていく方法です。
最初の一文字を調べて二バイト文字だったら更に処理ってな感じです。
パターンが読めた所から一気に出来ました。
# 公開したら馬鹿にされそうだな。^^;
>>804 無条件で最大のバッファを取るのと、漢字第 2 バイトがアルファベットや数字に
なることがあるので、そうスマートでもない。
(通常はそれでも問題無いが)
0x00FF & (int)*Src は (unsigned char)*Src で良かったような。
806 :
デフォルトの名無しさん :02/11/14 20:38
VC++からmdbファイルにアクセスを試みようと思うんだが、一から教えてくれ! 次のようにやりたい。 C:\test.mdb の中にある、table1 テーブルは key long, value varchar(50) といった構造である。 やりたいのは 1.C:\test.mdb にアクセス。 2.select * from table1 というSQLを送りレコードセットをもらう。 3.レコードセットを1レコードづつ進め、各レコードでは、 key と value の値を 得る。(→ 適当なコントロールに書き出し。) 4.insert into table1 values(10, 'あいうえお') といったinsert文や、 5.delete from table1 where value=1 といったdelete文を実行してみる。 6.使用したレコードセットの解放や、mdbへのコネクトの切断。
InternetCanonicalizeUrl
>>806 えーと、SQLの実行なんかはODBCで接続してやるんだっけかな。
でもそれは初心者がやることと違う。
データベーススレ行け。
809 :
デフォルトの名無しさん :02/11/15 00:52
PegNdx = ( PEG_NDX )selDlg.PegNdx; 見たいな、()がある書式の意味がわからない。 これが書かれている場所では、 PEG_NDX は enum で、 selDlg では、PegNdx は int であるので、 int である selDlg.PegNdx を、PEG_NDX に沿わして(?) Peg.Ndx に入れる。っていうこと? たんに、 PegNdx = selDlg.PegNdx; ではいけないのですか?
>>809 型キャストだな。
そのまま放り込んでしまうとPEG_NDXをenumで定義して値の範囲を制限している意味がないだろ?
最初からintでいいことになってしまう。
ありがたいことに、enumで宣言したPEG_NDXは型として扱われるので、intとは違うことになり、そのまま代入しようとするとコンパイラが警告してくださる。
バグが発生しにくいようにチェックしてくださるわけだから、無視してはいけない。
コンパイラさまに感謝しつつ、どうしても必要な場合に、これは「判ってやっているんですよ」と教えて差し上げるわけ。
しかし、勝手に正当なPEG_NDXの値になるわけではないぞ。
代入して問題がないことはプログラマが責任を持たなくてはいけない。
>>810 ありがとうございます。
わざと()をはずしてやったら、
1 番目の引数を 'int' から 'enum PEG_NDX' に変換できません。
といわれました。
VC++の本みて勉強してるけど説明がないのは、C++の基本事項だったからなのかな?
>>811 チョー基本。
その本はC++の基本が解ってることを前提にしてるんじゃないか?
>>812 なるほど。
C++自体、これまでまったく扱ったことがなかったので。
Cは机上の理論で扱ってました。
だんだんとVC++が分かってきたので面白くなってきたところです。
814 :
デフォルトの名無しさん :02/11/15 02:25
関数定義のスコープ分けの protected ってなんですか? On・・・から始まる関数しかないようなんですが、いったいなんなんでしょうか?
>>814 派生クラスにはアクセスを許すスコープ。
public privateについては判ってるか?
C++の基礎勉強したほうがいいぞ。
816 :
デフォルトの名無しさん :02/11/15 03:50
DBのクライアント用に使うコントロールって何ですか? MS-AccessとかでCRecordViewじゃないほうの一覧が出てくるやつです。 リストビューだとセルの編集とか出来ませんよね。
817 :
デフォルトの名無しさん :02/11/15 13:43
DDX変数を設定しました。 本のサンプルソースを見ると,m_str2=m_str1; と書いてありました。 これはメンバ変数ですから,.m_str1というふうにしなくてはいけないんじゃないでしょうか? メンバ変数名をそのまま書くだけでなぜつかえるのでしょうか?
>>815 ありがとうございます。理解できました。
public と private はだいたいわかってましたが、
派生クラスというのは思慮の他でした。
>>817 質問の前に自分の日本語を確認してくれ。
820 :
デフォルトの名無しさん :02/11/15 13:58
DDX変数を設定しました。 本のサンプルソースを見ると,m_str2=m_str1; と書いてありました。 これはメンバ変数ですから,「○○.m_str1」というふうにしなくてはいけないんじゃないでしょうか? メンバ変数名をそのまま書くだけでなぜつかえるのでしょうか?
>>820 m_str2=m_str1;
の一文は、「どこに」 あるいは 「どんな文脈で」 書かれてましたか?
822 :
デフォルトの名無しさん :02/11/15 14:04
UpdateData(TRUE); //取得 m_str2=m_str1; //エディットボックスのメンバ UpdateData(FALSE); //送る
ヽ(´ー`)ノ
>>822 言い方が悪かった。
そのルーチンのプロトタイプを書いてくれないか?
>>816 DBControlGrid。似たようなのにMSFlexGridが有る。
ヘルプ引け。
>>817 スコープについて勉強汁!
そのクラス内からはクラス内のスコープが見えてるから、単にm_str1とするとそのクラスのメンバ変数ということになる。
>>824 どうもです。DBControlGridってのはBCBですかね。
MSFlexGridで調べたらActiveXでVCに標準装備とのことで、
こちらを使用してみます。サンクスです
>>825 スマン。DBGrid コントロールだ。
>>824 そうやった!
ありがとん
VC++をずーとやってたから,C++の用法忘れ取った
お詫びにAAをどぞ
∧_∧ ヒソヒソ
( ´_ ゝ`) ∧_∧
/ \/ )( ´,_ゝ`)
>>617 プッ
/ \___// \
__ .| | / /\_ _ \ \_____
\  ̄ ̄ ̄ ̄ ̄ ̄(__ノ \ \__) \
||\ \ .||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
617ごめん・・・ 817やった
自分がVCの初心者なのかC++の初心者なのかを冷静に判断してから 適切なスレで質問してほしい。
∧_∧ ヒソヒソ
( ´_ ゝ`) ∧_∧
/ \/ )( ´,_ゝ`)
>>829 プッ
/ \___// \
__ .| | / /\_ _ \ \_____
\  ̄ ̄ ̄ ̄ ̄ ̄(__ノ \ \__) \
||\ \ .||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄ ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
>VC++をずーとやってたから,C++の用法忘れ取った 激しく意味不明
832 :
デフォルトの名無しさん :02/11/15 16:20
こんにちは、先ほどVC++.NETを購入してまいりました、初心者であります。 ついでに初心者本も探したのですが、.NET対応の書籍には良いのが無かったので、 「作ってわかるVisualC++6.0」清水康晶 これって.NETで勉強するとして、不自由は無いでしょうか? つまり、.NETは6.0の上位互換ですよね?ですよね?という質問であります。
(^ー^;) <………
>>832 キミにはムリ。IDE の操作性とかクラスライブラリ、フレームワークが
結構変わってるから。
VCの初心者なのかC++の初心者なのかそれ以前に書籍についての質問なのか、 冷静に考えて適切なスレで質問してほしい。
extern っていったいなんですか? 教えてくださいっ。
extern int やまだ; // <- 山田の家はここじゃないけど、どこかにそおういうヤツが居るぞ。型は int だ。 int やまだ; // <- 山田の家はここ。型は int だ。 extern "C" あれこれ; // あれこれで宣言された識別子には C 言語互換の名前変換ルールが適用される extern "C" { ほげほげ // ほげほげで宣言された識別子には C 言語互換の名前変換ルールが適用される }; 後ろの方は C のコードとリンクしたり、DLLで外に見せる名前をわかりやすくしたりするのに 使われることが多いです。
838 :
デフォルトの名無しさん :02/11/15 22:43
>>832 不自由ありますよ、かなり。
VC++5.0→VC++6.0にするのとはわけが違います。根本的に。
VC++6.0 + MFCです。 CEditViewかCRichEditViewでURLが入力されると 自動でリンクになるようにしたいのですが、参考になるホームページ等ありましたら 教えていただけませんでしょうか?
ああ、参りましたね、 3000円もしたのに(泣) C++はわかるので、 とりあえずチャレンジしてみたいと思います。 3000円を捨てるわけにはいかないので。
841 :
デフォルトの名無しさん :02/11/15 23:50
VC++7.0Professionalまだ〜 std出てるけどいらね(クズ
842 :
デフォルトの名無しさん :02/11/16 01:22
visualC++6.0って128MBで,軽快に動きますかね?
それが発売された頃(98年)の一般的な環境を考えろ。
64MBですかね? 32MBかな いま64MBで使っていますが,多少不満があります
846 :
デフォルトの名無しさん :02/11/16 05:41
Visual C++6の使い方がまったくわかりません お勧めの参考になる本ありましたらおしえてもらえませんでしょうか
>>848 ちょっと本屋で見てきます とりあえずこのソフトの使い方が分かればいいので・・
> VC++6.0付属の変な本 ワラタ 読んだ事無いけど
>>850 どんな本なんだろね?
俺は人からコピったからしらねーや。
今確認したら見当たらない。 捨てちゃったらしい (・∀・)
853 :
デフォルトの名無しさん :02/11/17 00:01
GetPrivateProfileStringについてですが、 MSDNで5番目の引数はバッファのサイズ(DWORD)となっていますが、 ここに65535以上の数を指定すると取得できないのですが、 これはこういう仕様なのでしょうか? DWORDは32ビット符号なし整数( unsigned long 型 )なので 4294967295までいけるとおもうのですが・・ # 配列の方は65535を超えて確保しています
>>853 そういう仕様なんだろう。
引数の型によって値のAPIの範囲が決まるわけじゃないからな。
このAPIに関して言えばその制限はWin16時代の名残だと思うが、
そうでなくても4GB確保されても困るから適当なサイズで制限するだろうな。
>>854 なるほど、サンクスです。
新しい定数が出来きました。^^;
というか、Win9Xでは、GetPrivate*で扱えるINIファイルの サイズは64KBだが、そう云う問題では無いのか?
857 :
デフォルトの名無しさん :02/11/18 00:54
VC++でコード書くときにemacs見たいに、 自動的にインデントしてくれる機能ってないですか?
>>857 VC++のエディタが自動インデントしてくれたと思ったが?
ツール → カスタマイズ → キーボード → 編集 とか ツール → オプション → タブ とか? .NETは知らない。
860 :
デフォルトの名無しさん :02/11/19 01:23
例えば、ツール→オプション→タブで、 自動インデントをデフォルト、タブを2にした状態で普通に書くと、 main(){ std::cout << "Hello, world." << std::endl; return 0; } みたいに、だらだらになります。 main(){ std::cout << "Hello, world." << std::endl; return 0; } みたいにならないもんですかね。 あと、if文とかも if (hogehoge){ int hage; } みたいに。
861 :
デフォルトの名無しさん :02/11/19 01:26
VC.netのMFCで、ダイアログベースで、タブコントロールを用いて、タブが9つ (上段に5タブ、下段に4タブ)というようなダイアログを作りたいのですが、 SetItemSizeを用いてすべてのタブの幅・高さを同じに設定する方法はわかったのですが、それでは 上段5段の合計幅と下段4段の合計幅が、違ってしまい、ブサイクになってしまうので、 上段の合計幅と下段の合計幅を同じにしたいので、タブ1つずつについて幅を 設定する方法を調べてみたのですがわかりませんでした。 タブごとに、幅を変える方法がわからないので知っている方がいましたら、 ご教授お願いします。 誠に初心者質問で申し訳ないです。
間違い。 あと、if文とかも if (hogehoge){ int hage; } みたいに。
pretty-print
864 :
デフォルトの名無しさん :02/11/19 02:00
DirectShowについて,ここで質問できますか?
質問してもいいけど、俺は引き篭もりなので答えられません。
>>862 デフォルトインデントより、スマートインデントの方がいい感じになると思う。
あとは ツール → カスタマイズ → キーボード → 編集 で下のコマンドの
キーバインドを設定しとくと(・∀・)イイ!!
・SelectionFormat(スマートインデントが有効のとき)
・IndentSelectionToPrev
・IndentToPrev
直前までアクティブだったウインドウのハンドルを取得するため GetNextWindowやWA_ACTIVATEのWPARAMなどを試したのですが、 なかなか取得できません。 何かいい方法があったら教えてください。 よろしくお願いします。
>直前まで ってのがよく分からんが、GetForegroundWindow()は?
>>868 直前までというのは、ウインドウを自アプリに切り替えた時、
その直前にアクティブだったウインドウという意味です。
GetForegroundWindow()だと自ウインドウのウインドウハンドルが
帰ってきてしまうようです
>>869 WM_ACTIVATEメッセージを取得して、lParamの値を参照するんじゃ駄目か?
>>870 すいません、書き間違いでした。WPARAMでなくLPARAMでした...
それを試してみたんですが、どうも確実に取得できるわけではないみたい
で困っています。
MSDNにも「This handle can be NULL」という風に書いてあって、実際何回か
テストしてみた結果NULLが帰ってきました。
試してないんだが、GetWindow(MyWnd, GW_HWNDNEXT) なんかどうだ?
WM_ACTIVATEAPPの lParam(スレッドID)から、メインウィンドウを逆引きするとか?
>>867 IMEとか常駐ソフトのウィンドウとか破棄したウィンドウとか
タスクバーとかが直前までアクティブだった場合も想定
しているの?
何をしたいのかもっと詳しく説明した方がいいかも。
875 :
デフォルトの名無しさん :02/11/20 20:52
2Dの衝突判定関数創ってるんだけど、引数有りの関数にした方がよいのか メンバ変数を使って引数なしにしたほうが良いのか 教えてください。
>>875 激しく意味不明なんだが
引数で渡さずに衝突する対象はどうやって区別するんだ?
877 :
こんな感じで :02/11/20 21:58
class CGame{ public: char Map[20]20]; }; class CHARA{ int xPos,yPos; enum{height=20,width=20}; int hitCheck(); };
あ、マップだけしか考えてなかったっす。
class CChara: public CGame{ こうでした(´Д`)
・・・助けて
class CChara: public CGame って・・・とんでもねー設計になってないか?
>>882 なにがわるいってんだ?
CGameは、CObjectのような全てのクラスが共通で持つスーパークラスなんだ。
もちろん多重継承禁止だ。
> なにがわるいってんだ? なまえ。
885 :
デフォルトの名無しさん :02/11/20 23:45
質問なのですが、VC++.netでタブ一つ一つを違う幅に設定することは不可能 なのでしょうか? すべてのタブを同幅に設定するのは、SetItemSizeを使うことによってできましたが・・・
>>885 VC++ の前に、日本語と質問の仕方を学んでくれ。
887 :
デフォルトの名無しさん :02/11/21 00:29
ここでちんたらVC++の使い方聞いてないで UNIXでgcc使え。
888 :
デフォルトの名無しさん :02/11/21 00:56
>886 VC.netのMFCで、ダイアログベースで、タブコントロールを用いて、タブが9つ (上段に5タブ、下段に4タブ)というようなダイアログを作りたいのですが、 SetItemSizeを用いてすべてのタブの幅・高さを同じに設定する方法はわかったのですが、それでは 上段5段の合計幅と下段4段の合計幅が、違ってしまい、ブサイクになってしまうので、 上段の合計幅と下段の合計幅を同じにしたいので、タブ1つずつについて幅を 設定する方法を調べてみたのですがわかりませんでした。 タブごとに、幅を変える方法がわからないので知っている方がいましたら、 ご教授お願いします。
ま た U N I X 厨 か 。
891 :
デフォルトの名無しさん :02/11/21 03:42
VC++6.0とDirectX8のソースをC++Builderで使えるようにしたいんだけど できるの?
>>891 射 た 違 い だ よ そ れ は !
893 :
デフォルトの名無しさん :02/11/21 04:11
> VC++6.0とDirectX8のソース (゚Д゚)ハァ?
ぐは。せっかく偽者君が煽ってくれてるのに流されてるし ・・・他のとこで聞いて見ます。マルチだとか言わないでね。
896 :
デフォルトの名無しさん :02/11/21 09:46
VC++まったくの初心者で、次のようなプログラムを作ろうとしてます。 ●エディットボックス2つ 問題入力部と解表示部 ●ボタン4つ、 button1: 入力した問題を解き始める、ひとつ求まったら表示して止まる button2: 一つの解が求まったとき次の解を求める button3: 次の解を求めるのを止めて最初に戻る button4: 終了 わからないのは一つの解を表示して止まり、button2、button3、button4 の いずれかが押されるのを待って次に進めるところです。 よろしくお願いします。
897 :
デフォルトの名無しさん :02/11/21 11:17
>>896 問題入力って人工知脳かなんかで解を導いているの?
そのくらいのことができるのにインターフェイスで詰まっている
とは激しく疑問なのだが。
虐めイクナイ
>>896 イベント駆動の仕組みが判ってないのか。
button1を押してから問題を解き始めるのができるなら悩むところなどないと思うが。
ここはボケるとこでつ。
902 :
デフォルトの名無しさん :02/11/21 19:16
人工知脳って・・・ネタかよ。
unhandled exceptionっていうエラーが出てしまうのですが、 Win2000では一切でず、win98だと出ます。 OSによってなにか違うのでしょうか? ヒントを下さい。
904 :
UNIX厨 :02/11/21 19:48
いいからもうVC++なんて使うのやめろ。 これからはUNIXの時代だ。 gccの時代だ。 GNU C Compiler GNU is Not Unix ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす ぐにゅーいずのっとゆにっくす
>>903 情報が全然足りないが、知りたくもない。
2000にあって98にないAPIとか呼んでないだろね?
とにかく98上でデバッグ汁。
gcc → gnu compiler collection
>>904 UNIXはもう終わりました!
よって、
━━━━━━━━━━━━━━━━━━━━終了━━━━━━━━━━━━━━━━━━━━
908 :
デフォルトの名無しさん :02/11/21 20:34
猫でもわかるプログラミングのこの作業を
http://www.kumei.ne.jp/c_lang/sdk/sdk_06.htm リソースエディタでやりたいのですがやりかたがわかりません。
私がやった作業は
「プロジェクト」→「新しい項目の追加」→「リソースファイル」→右クリックして「リソースの追加」→「Menu」→各IDを設定
その後にresource.hをincludeしたのですがメニューが現れてくれません。
どこがいけないのか教えてください。
>>908 resouce.hをインクルードしただけなのか?
WNDCLASSにメニュー登録しないとダメだぞ。
910 :
デフォルトの名無しさん :02/11/21 21:00
今,初めてメモ帳をwidestudioで作ってるんですけど ブルダウンメニューの中のプラグラムになんて書けばいいのか 全然、分かりません。(上書き保存とか) よかったら教えてください。よろしくお願いします。 使ってる人なんていないかな・・。(´・ω・`)ショボーン
Λ ヽ(`∀´)ノ ぬるぽ
UNIX(・∀・)カエレ!! 時代終了!!
いちいち釣られるなよ
>>909 あう。
myProg.lpszMenuName ="SAMPLE02";
というふうに変更してました。
が、まだだめです(´・ω・`)ショボーン
917 :
デフォルトの名無しさん :02/11/21 22:01
>>915 いろいろ見て回って
myProg.lpszMenuName =MAKEINTRESOURCE(SAMPLE02);
とすることで解決しました_(._.)_
919 :
デフォルトの名無しさん :02/11/21 23:37
以下のソースで実行すると、 ar[0].m_cost == -1 ar[0].m_sweet == -1 になります。どうすれば、 ar[0].m_cost == 100 ar[0].m_sweet == 200 になるのでしょうか…お願いします。 class apple { int m_cost; int m_sweet; apple() { m_cost=-1; m_sweet=-1; }; apple(int cost, int sweet) { m_cost= cost; m_sweet= sweet; }; apple operator=(apple &data) { m_cost= data.m_cost; m_sweet= data.m_sweet; };}; void main() { apple a(100, 200); ar.add(a); //ar[0].m_cost != 100 //ar[0].m_sweet != 200 }
ar.add(a); って何だよ
第一 public: が無い
なんでメンバ関数の終了にセミコロン入れるの
しかも void main() ・・・
924 :
デフォルトの名無しさん :02/11/22 07:17
public は書き忘れです。 void main() { CArray ar; apple a(100, 200); ar.add(a); //ar[0].m_cost != 100 //ar[0].m_sweet != 200 } おねがいします。
925 :
デフォルトの名無しさん :02/11/22 07:25
CArray ってテンプレートパラメータ省略できるのか?
>>919 926 がふれた以外にも apple::operator= の定義が変だとか、
CArray::add なんぞ存在しねえとか、
おまいはどうやってこれをビルドしたのかと、小一時(ry
GetMenuItemInfo関数がうまく動きません。 MENUITEMINFO mi; GetMenuItemInfo(hMenu, id, FALSE, &mi); でやると、miに情報が入っていなく、エラー文字列は 「パラメータが間違っています。」となります。ちなみに GetMenuString(m_hMenuSkin, id, buff, sizeof(buff), MF_BYCOMMAND); とやると正しい文字列がとれます。Win2000です。
デスクトップアクセサリー系のアプリ挑戦中なのですが。 リージョン設定したウィンドウをマウスメッセージに応答してリアルタイムで 移動させたいのですが、どうも残像が激しくなります。 クライアント外の更新速度はどのようにして上げられるでしょうか? ちなみにウィンドウの描画はWM_PAINTでのBitBlt、 それにMoveWindowと、かなり単純になってます。 ココミロ、と言うのでも良いのでアドバイスお願いします。
WM_NCHITTEST に応答して HTCAPTION を返せばいい話じゃなくて?
>900 解が求まるのは再帰の途中なので、入力待ちに戻したり、継続する場合またここに 帰る方法がわからないのです。メッセージボックスで判断するか、フラグを持ち回る しか思いつきません。VC++一週間で周囲に聞ける人間もいないのでよろしくお願いします。
>>931 まずはレスどうもです。
キャプションをドラッグしての移動だとドラッグの間は枠線のみの表示に
なりますよね?(確かWindows側で設定があったような…)
そこを何とかぐぃっとウィンドウをひっぱりたいわけです。
クライアント外なのでそもそも関係なさそうですが、DirectXを使わずに
GDIでなるべくいきたいのですが‥‥。
>>930 リージョン設定したウインドウの描画は遅くなる
MediaPlayerで複雑な形のスキンに変えて移動させてみればいい
きっと元の矩形のウインドウ移動よりもたつく
小さ目のウインドウにするか、比較的単純な(計算量の少ない)リージョンに
すれば多少は回避できるかもしれないが
> ドラッグの間は枠線のみの表示 ユーザーが画面のプロパティでそう設定してるなら、そのように動作すべきだが。 常にウィンドウごとなんて迷惑な設計はよせ。
936 :
デフォルトの名無しさん :02/11/24 13:57
>>932 ・解を求める部分は別スレッドに任せる。
・インターフェイスは文字列の授受。ボタンの入出力
に専念させる。
937 :
デフォルトの名無しさん :02/11/24 15:51
クラスビューについて質問なんですが… 他のプロジェクトから持ってきたクラスをClassViewで右クリックしても 「仮想関数の追加」「Windowsメッセージハンドラの追加」が出てこないのは何故でしょう? (注:元のプロジェクトでは表示されます。) クラスウィザードにも現われてきません。 他のプロジェクトのhogeクラスをベースにして改造するために、 hoge.hとhoge.cppファイルをコピーしてFileViewの「ファイルをプロジェクトへ追加」で 追加しただけなのですが…ダメなのですか?
939 :
デフォルトの名無しさん :02/11/24 22:00
sageてもーた
>>938 プロジェクト閉じる→clwファイルを消す→プロジェクト開く→クラスウィザード起動
で情報を再構築
942 :
デフォルトの名無しさん :02/11/24 22:49
すみません、ご教授願います。 メニューの中のアイテムをある条件で有効・無効に切り替えたいと思い、 class wizardで対象のメニュー項目のオブジェクトIDを指定し、 UPDATE_COMMAND_UI イベントハンドラを追加しましたが、 このイベントが、メニューのプルダウン時ではなく、クリックされた後に起動してしまいます。 (つまりON_COMMANDと同じタイミング) これは何故なのでしょうか?
VC++.NETってさ、ANSI C++準拠でないんでつか!?
>>944 よくわからんけど、買っても不自由はしない?
ってか設定しない場合はどうなってんの?
>>944 Microsoft 拡張を Off にすると、いろんな標準ヘッダがコンパイル通らなくなる罠。
もともと VC 系統は ANSI に準拠していない。
Microsoft は 90% 準拠していると言い張っているが、つまり準拠していないと
いう事だ。
もうすぐ準拠度 98% (当社比) の VC++8 が出るらしいから待ってみたらどうだ。
98% という事は、やっぱり相変わらず対応していないわけだが。
947 :
デフォルトの名無しさん :02/11/24 23:14
>>946 100%準拠しているコンパイラがあったらあげてください。
>>944 よくわからんけど、買っても不自由はしない?
ってか設定しない場合はどうなってんの?
gcc 3.2
>>946 .NET出したのに・・・Ver8って.NETに対応?
みんなはVC使って困ることありまつか?
951 :
デフォルトの名無しさん :02/11/24 23:25
>>948 まったく不自由しないから買っても大丈夫だよ。
不安を煽っているのはアンチマイクロソフトだから。
VC++8っていつでんの?
>>950 void func(LONG lParam);
...
RECT rc;
...
func((LONG)&rc);
が出来なくなった。
(イレギュラだけど、どうしてもキャストして値を持ってく事ってあるじゃん)
>>948 Microsoft 拡張が On の状態。
具体的にどういう状態だかは把握してない。
>>950 あなたが .NET と呼んでいるのは VC++7 だからよろしくな。
困った事?
ちょっと複雑な template を使うとすぐ音を上げてコンパイル通らなくなる
事かな。
それ以外に ANSI 非準拠という事で困った事は無い。
>>948 Microsoft 拡張が On の状態。
具体的にどういう状態だかは把握してない。
>>950 あなたが .NET と呼んでいるのは VC++7 だからよろしくな。
困った事?
ちょっと複雑な template を使うとすぐ音を上げてコンパイル通らなくなる
事かな。
ANSI 非準拠という事で困った事は無い。
>>953 関数呼び出し前にキャストすればいいのでわ?
>>955 それは分かってるけどさ。
結局.NETってなんなのよ!何が違うのYO!
つーか、ぬるぽ・・・もとい、次スレ誰か立ててくれ。
(゚Д゚)ハァ?
963 :
デフォルトの名無しさん :02/11/25 01:08
ディレクトリの内容の取得の仕方教えてギボン
FindFirstFile & FindNextFile
正直、ディレクトリのファイル列挙以外で再帰呼び出しをまじめに使ったことない(・ε・)
967 :
デフォルトの名無しさん :02/11/25 03:01
>>967 いえいえ。糞スレ立てたりわざと重複スレ立てたりする私よりよっぽどマシですよ。
悪意がないし、謝っているし、気を落とすこと無いです。
気にしないで元気を出してください。
ソートに(この場合クイックソートか?)再帰を使う奴は知障
再帰を使わないでスタックに変えてなんか利点があるのか?
C爺激萎えsage
974 :
デフォルトの名無しさん :02/11/25 23:59
現代人はソートにはstd::sort()を使うのだ。
std::sort() って使った分だけコードサイズ膨れないか?
し、質問させてください! 仕事でVC++使っている方は、どんなの作っておられるのですか? MFCとかも普通に使っておられるのでしょうか?
977 :
デフォルトの名無しさん :02/11/26 22:05
>>975 現代人のPCにはHDDやメモリの容量がたくさんあるので、
大抵の場合コードサイズよりも開発効率を優先させて
std::sort()を使います。
>>976 MFCやATLを普通に使ったりアブノーマルに使ったりしていますが、何か?
979 :
デフォルトの名無しさん :02/11/28 13:41
CreateWindowExでリッチエディットを10個作成して 状況に応じてウインドウをSetWindowPos(もしくはMoveWindow)で切り替え表示しているのですが、 (アクティブなウインドウは最大サイズにして、それ以外のウインドウはサイズを幅、高さを0,0にしています) リッチエディット内に大量の文字列がある時にウインドウを切り替えると マウスカーソルが砂時計になり表示に時間がかかるのですがこれを回避できる方法ってないでしょうか?
>>979 サイズ変えないで単に非表示にするんじゃダメなの?
表示の切り替えなら普通ShowWindow()でやるのでは?
>>980-981 おっしゃる通りShowWindowで上手くいきました。
ありがとうございました。m(_ _)m
リッチエディット10個・・・。 他に方法は無かったのか?と小一時間(略
>>983 それよりもリッチエディット10個も使うソフトって一体…
979の件なのですがウインドウサイズ変更でやっぱり同じような状態になりました。
一度Textをすべて取得してリッチエディットを空にしてサイズが変更された後Textを送るようにしてみましたが
若干改善されましたが少し砂時計が出ます。。
何か良い方法はないでしょうか・・
>>984 IRCクライアントを作っています。^^;
接続できるチャンネル数の最大が10個みたいなのでそれぞれのリッチエディットに
チャンネルログを送るようにしています。
mallocとかでメモリを確保してチャンネルを切り替える度に
リッチエディットの中身を入れ替えとかも考えましたが、
メモリが勿体無いかなと思いリッチエディットを10個作りました。
他に良い方法があるかもしれませんが。。
986 :
デフォルトの名無しさん :02/11/29 03:11
どうしてもと言うなら、表示していないリッチエディットはリサイズしない。 > mallocとかでメモリを確保してチャンネルを切り替える度に > リッチエディットの中身を入れ替えとかも考えましたが、 > メモリが勿体無いかなと思いリッチエディットを10個作りました。 リッチエディット 10 個の方が、メモリもリソースも食うと思うが。
987 :
デフォルトの名無しさん :02/11/30 00:11
基本的にはメモリ内でデータ管理 ↓ アクティブなデータのみ表示 だろ。 リッチエディット10個使うような祖父と握らされたらたまんねぇっすよ。
988 :
デフォルトの名無しさん :02/11/30 02:37
989 :
デフォルトの名無しさん :02/11/30 16:25
CListCtrl(レポート形式)でコードからアイテムを選択する方法を 教えてください。SetHotItemかなと思い試してみたのですが テキストが青くなるだけでうまく行きませんでした。
ダレモイナイ…
1000ゲットスルナラ
イマノウチ!(・∀・)
ランタンタン♪
ランタンタンタン♪
今だ!995番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ (´⌒(´ ⊂(゚Д゚ )≡≡≡(´⌒;;;≡≡≡ ⊆⊂´ ̄ ⊂ソ (´⌒(´⌒;;  ̄ ̄ ̄ ズザーーーーーッ
ランタンタンタン♪ ランタンタンタン♪
|д゚)…
998
( ´∀`)
┌┐ ●●● 人 ││ ●\ ●\ ノ二\ ナ ゝゝ V ●●● ●\ ●\ / / 乙 つ O ●\ ●\ ●\ ●\ ●●● ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ ●\ ●\ \\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ \\\ ●\ ●●● \ ┌┐ ┌┐ ●\ \\\ ┣━┳┃┃ ┃ ││ ││ ●●●\ ┃ ┃┃┃ ┣┓ ━╋ ━╋ V V \\\\ ┛ ━┛ ┃ ┏┫ ┏┫ O O (´´ /■\ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;;
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。