□□□VC 初心者質問スレ 2□□□
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=984812029
0153151
NGNGさっそくのお返事どうもありがとうございます。
初期化。。。
やってみます。
0154デフォルトの名無しさん
NGNGねえ、DVDを作りたいのー。
誰か、相談乗って★
0155デフォルトの名無しさん
NGNGポインタだけで実体がないのでは。
FuncB() 呼ぶ前に CA の実体できてる?
0156151
NGNGご指摘どおり実体がありませんでした。
本当にどうもありがとうございました。
0157デフォルトの名無しさん
NGNGint main(void)
{
for(;;) printf("\t\b\b\b");
return 0;
}
すいません、Windows2000でどうしてもこのプログラムが
動かないんですけど、よくわかりません…誰か助けて…
0158競れ損 ◆mQ/jMyIo
NGNG何がしたいのかよくわかりませんが。
ネタ?
0159157
NGNG問題のあるコードだけを抜き出して、簡略化したものです。
実際はもっと複雑です。
これでは何も表示されないはずなんですが、私のWindows2000では、
動かないんです、試してみてください。
どうかご助言を。
0160デフォルトの名無しさん
NGNG動かない、とは具体的にどういった状態を示すのか説明しろ。
0161デフォルトの名無しさん
NGNGいや、試したけどきちんと動作するぞ。ブルーサンダーが(藁
0162デフォルトの名無しさん
NGNG見たところコンソールアプリのようですが、なにも表示しないコンソールアプリを
Win2000で実行させてプログラムが動いたか動いてないかをどうやって判断しているのですか?
>>157はfor(;;)で無限ループになっているので動きっぱなしで終了しないように見えますが?
0163 ◆yjzZLKY2
NGNG0164デフォルトの名無しさん
NGNG昼飯喰って元気出せ
0165デフォルトの名無しさん
NGNGOS ごとオチタ…。症状言ってないトコ見る限りネタだと思われ。
要するに、タブの後にバックスペース 3 個でシステムの使ってる領域壊しに行ってるんだと思う。
実行しちゃダメだよ。
0166デフォルトの名無しさん
NGNGNT系OSのコンソールの問題らしいfj.os.ms-windows.programmingで
話題になってるとのこと(まだ見に行ってない)
\tよりも多い量の\bで打ち消すとOSが飛ぶらしい
0167デフォルトの名無しさん
NGNGよくがんばった、感動した!でも2度と来んなよ!
0168デフォルトの名無しさん
NGNG全くのプログラム初心者で買った教本もCが前提?になっていてよくわからなくて
プログラムの出来るらしいネットの知り合いに聞いてみたら
BASICもCも全くわからない初心者がVC++は無謀だと言われたんです(涙)
独学でプログラム初心者がVC++を学ぶのに良いサイトや本をご教授願えませんでしょうか。
0169デフォルトの名無しさん
NGNGMSDNのScribleチュートリアル
0170???
NGNGプログラミングの勉強を
した方がいいよ。
BCCコンパイラー無料だし。
0171デフォルトの名無しさん
NGNGVC 持ってるなら、VC でコンソールアプリ書いて勉強すればよし。なんでわざわざ BCC を
勧めるのか謎だ。
0172168
NGNGMSDNのScribleチュートリアルは実行してみましたが
MSDN自体がC++修得済みのWINDOWSプログラミングのヘルプ集みたいなんできついですわ。
勉強する方法としてはC言語を勉強>C++修得>MSDNで学ぶっていう感じなのでしょうか?
0173デフォルトの名無しさん
NGNG0174168
NGNGC言語を学ばないで直でいけます???
0175デフォルトの名無しさん
NGNGいけるさ、頑張れば。っていうかいきなりVC++でもなんとかなる。
日経BP社の「VisualC++5.0 3週間完全マスター」を薦めるよ。
同シリーズでVC++6.0のもあるけどこれは入門書としては不適。
0176.
NGNG個人的には、文法だけでも普通のCをきっちりとやってからの方がいいと思う。
LSI-Cも無料だからこれで十分。
0177デフォルトの名無しさん
NGNGVC 持ってるなら、VC でコンソールアプリ書いて勉強すればよし。なんでわざわざ LSI-C を
勧めるのか謎だ。
0178デフォルトの名無しさん
NGNG猫でもわかる・・・を検索せよ
0179.
NGNGどうもANSI準拠のCはコマンドラインからというイメージがあるんで。
makeとかも覚えられるし。
それにVC重い。
0180デフォルトの名無しさん
NGNGVCにもnmakeあるし、コマンドラインから使えるぞ
それに、いまどきVC重いってどんな環境だよ(藁
あと、ココのすれタイトル参照
0181デフォルトの名無しさん
NGNG0182.
NGNGANSIの小さなプログラムくむのにVCを立ち上げるのも気がひける。
>ココのすれタイトル参照
なんでもかんでもVCでやらなきゃいけないスレなのか?ここは
0183デフォルトの名無しさん
NGNGいまどき64Mしか積んでないとか言うわけでもないだろ
0184.
NGNGPIII-1Gで256M、Win98SE。
Win9xが悪いって言われそうだけど、IF-SEGAのドライバが
W2Kでないため(w移行してない。
V30のHDDなしの頃からやってるんで、VC(VS)立ち上げるのはやぱ抵抗がある。
0185デフォルトの名無しさん
NGNG(1)VC立ち上げる
↓
(2)メニューバー[ファイル(F)]の[新規作成(N)]選択
↓
(3)新規作成ダイアログがひらくので
[プロジェクト]タブの[Win32 Console Applicaton]選択。
右側の[位置(C)]で開発用に使いたいディレクトリを選択して、
その上の[プロジェクト名(N)]を入力。
[OK]ボタンを押す。
↓
(4)Win32 Console Applicaton - ステプ1/1 ダイアログがひらくので
ラジオボタンの[空のプロジェクト(E)]を選択。
[終了(F])]ボタン押す。
↓
(5)新規プロジェクト情報ダイアログがひらくので
そのまま[OK]ボタン押す
↓
(6)メニューバー[ファイル(F)]の[新規作成(N)]選択
↓
(7)新規作成ダイアログがひらくので
[ファイル]タブの[C++ソースファイル]を選択。
右側の[ファイル名(N)]に適当な名前を入れる(拡張子はいらない)。
[OK]ボタンを押す。
↓
(8)プログラム入力たとえば・・・
#include <stdio.h>
int main()
{
int i;
for(i=0;i<=4;i++) printf("( ´∀`)");
return 0;
}
↓
(9)[F7]キーを押す(ビルド)
ビルドエラーがでたら、エラーがなくなるまでプログラム修正
↓
(10)
Windowsのコマンドプロンプトを起動。(3)で選択したディレクトリへ移動。
さらにその下のDebugディレクトリへ移動。
dirすると exeファイルがあるのでそれを実行。
↓
(11)( ´∀`)( ´∀`)( ´∀`)( ´∀`)( ´∀`)
0186185
NGNGハードル高いとおもわれ。
0187デフォルトの名無しさん
NGNG9xが悪いなんていわないが。
それだけスペックがあるなら普通は問題ないだろ。
ところで、なんでVC=VSなんだ?
コマンドラインから使えばいいじゃねーか。
俺だってVSなんてデバッグとプロファイルのときしか使わないよ
0188デフォルトの名無しさん
NGNGMeadowみたいな別のアプリ内から使うならわかるが。
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGVisual Studio の統合開発環境と C/C++ コンパイラの区別がついていないヤツ発見。
VC をインストールするときに、環境変数を登録するようにしておけば、コマンドプロン
プトから cl コマンドを使ってコンパイルできます。make は nmake.exe を使えばよろ
し。
>>184
じゃあ往年の名コンパイラ Turbo C でも使ってなよ。個人の趣味としては何を選ぼうが
かまわんが、太古の常識を他人に押し付けるのはやめとけ。
0191デフォルトの名無しさん
NGNG大ありだぞ。
頭を冷やしてよく考え直せ。
趣味で一人でしか使ってないならその限りではないがな。
0192デフォルトの名無しさん
NGNGTurboCはいいね。
これも無料で落せる
0193190
NGNGBCC - win32
GCC - cygwin/win32(mingw32)/dos(djgpp)
watcom-c/c++ - dos/win16/win32/OS2/WARP
C
TC - dos
LSI-C3.30c試食版 - dos
lcc - win32
この辺が無料で公開されてるコンパイラか。
0194デフォルトの名無しさん
NGNGそれをみると、いまさらLSI-Cの試食版っていう気もするな。
TCやwatcomはフルスペック?
0195188
NGNGそりゃわかってる。
コマンドラインでビルドする環境が整っているならば話は別。
でも、レスの流れから「VCインストールしてさあどうするか」
という段階での話をしたのが188
0196デフォルトの名無しさん
NGNG> 趣味で一人でしか使ってないならその限りではないがな。
コマンドラインの使用と、この文のつながりが分からんのだが。
うちでは Visual Studio に統合されるソースコード管理ツールを使っているので、複数人でソースを
いじる場合でも統合環境を使ってますが……って、そういう話じゃなくて?
0197デフォルトの名無しさん
NGNG191じゃないけど
複数のdllやocxやcomを組み合わせたアプリなんかを
全部まとめてビルドしよう!とかいうとき、
もしかしていちいちプロジェクトを開いて順番にビルドしてる?
nmakeを呼び出すmakefileやbatchを組んで
debug/releaseをまとめてビルド&リリース用ディレクトリにコピーとかって
やってるけどなあ。
0198デフォルトの名無しさん
NGNGワークスペースに関係するプロジェクトをまとめて登録、依存関係を設定した上でビルド
してます。
0199168
NGNG>>185さんのおかげで、初めてのプログラムできまして、
数字のとこをいじったりしてなんとなく感嘆したりしました( ´∀`)
とりあえずは
>>178さんに紹介してもらったサイトの通り実行してると上手くいきそうなんで、
そのサイトでVCを使って勉強をしていこうかと思います。
>>175さん
私が猫未満の場合には購入を考える事にしますね。( ´∀`)
0200デフォルトの名無しさん
NGNGだから初心者がVC6で挑戦するときにはプログラム以前のとこでとまどうとおもう。
とりあえず、プログラムがmain関数で動いているうちは>>185の手順で大丈夫
。WinMainという関数が出てきたらちょっとだけやり方変わる。
0201デフォルトの名無しさん
NGNGこんなのどっちのやり方に慣れてるか(知っているか)ってだけの問題じゃん。
宗教戦争はやめれ。
0202196
NGNGそれは穿ち過ぎ。
私は 191 が「コマンドラインを使わないと問題がある」と断言したので、具体的に何か問題なのか
尋ねただけです。用途によっては、私が知らないだけでホントに問題あるのかもしれないし。
慣れてるって点では、私は Visual Studio よりも BSD pmake の方が。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGMAGURO Onlineにサンプルがあるよ
0205203
NGNGありがとうございます。
助かりました。
0206.
NGNG>nmake /f test.mak
などとやっても
"構成が指定されていません。デフォルトの D3DSkelton - Win32 Debug を設定します。"
などとでてMakeできません。
どなたかご教授を....。または、詳しいHPなどありましたら教えてください。
VC6を使用しています。
0208.
NGNGですが、それを実行すると一瞬でおわってしまい、何も行われていない
ようなのですが.......
0209デフォルトの名無しさん
NGNGすでにビルドが完了してるんじゃないの? もしくは *.mak ファイルが古いとか。
0210
NGNGそれだったら、gccでも十分では?
VC使う意味がない。
0211デフォルトの名無しさん
NGNG168の対するレスだろ。
0212デフォルトの名無しさん
NGNGそういう関数ないですかね・・・
HJPEG hJpeg = LoadJpeg(hInstance, FilePath, x, y, LR_LOADFROMFILE);
SetJpeg(hJpeg);
DeleteJpeg(hJpeg);
みたいにできたら・・・
いや、それよりJPEGのフォーマット知りたいです。
ビットマップ(DIB)なら
BITMAPFILEHEADER
BITMAPINFOHEADER
(palette)
bits
ですよね
JPEGのフォーマットって検索してもなかなか見つかりません
0213デフォルトの名無しさん
NGNGOleLoadPicture 使えば JPEG ファイル読み出して描画するまでは、簡単にかける。google で
検索かけるとサンプル見つかるよ。
0214デフォルトの名無しさん
NGNG「文字列パレット」というのかな、クリックすると定型文が入力される感じで。
0215デフォルトの名無しさん
NGNGJPEGの画像情報は、可変長のセグメントブロックが任意の順に並んでいるから、
BITMAPみたいに単純な構造体では表現できないよ。
でもGIFと違ってライセンス問題が無いから探せばWebで情報見つかるはず・・・
いま、いいサイトが手元に無いけど、とりあえずこのへんはどうかな・・・
http://funada11.denshi.numazu-ct.ac.jp/ichikawa/gazo/graphicfile/format/jpeg/jpeg2.html
http://www.mikeneko.ne.jp/~lab/grp/analyzer/
JPEGで探すよりJPEGに使われてる技術で検索したほうが見つかるかも。
ハフマン符号とか量子化テーブルとか離散コサイン変換とか。
0216デフォルトの名無しさん
NGNGhttp://www.jpeg.org/
0217デフォルトの名無しさん
NGNG-subsystem:consoleと入れたときに何か定義されるシンボルとかないでしょうか?
コンソールか、ウインドウアプリケーションかでソースを切り替えたいのですが
0218デフォルトの名無しさん
NGNG自分でシンボルを定義できない理由でもありますか?
0219212
NGNG0220212
NGNGhttp://www06.u-page.so-net.ne.jp/ca2/uo05025/OleLoadPicture.html
最後の方の
iPicture->lpVtbl->Render(iPicture,hDC, 0, 0, lWidth/32, lHeight/32, 0, lHeight, lWidth, -lHeight, NULL); //描画
が良くわからないです
6以降の引数おかしいような気がしますが↓
『 0, lHeight, lWidth, -lHeight,』
ではなくて
『 0, 0, lWidth, lHeight,』
の間違いですよね・・・
最後尾の説明によると
『 画像の幅・高さを32で割っているのは
OLEイメージを変換する方法がわからないため』
となってますが、
『OLEイメージを変換する方法がわからない』とはどういうことか
それが私にはわかりません(^^;
それとなぜ4、5の引数32で割るんでしょう?
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG俺のソースからコピペ
iPicture->get_Width(&himetric_width);
iPicture->get_Height(&himetric_height);
width = ::MulDiv(himetric_width, ::GetDeviceCaps(hdc, LOGPIXELSX), 2540);
height = ::MulDiv(himetric_height, ::GetDeviceCaps(hdc, LOGPIXELSY), 2540);
iPicture->Render(hdc, 0, 0, width, height, 0, himetric_height, himetric_width, -himetric_height, NULL);
32で割るのは正しくない。
あと、DIBは上下が逆なので、-heightとするんだと思った。
0223デフォルトの名無しさん
NGNGSetMapMode(hDC, MM_HIMETRIC); もアリかな。
0224デフォルトの名無しさん
NGNGMFCのソースを追ってみたのですが、m_xOleClientSiteでつまってしまいました。
0225デフォルトの名無しさん
NGNGGetAsyncKeyStateとGetKeyStateってまったく同じなの?
0226デフォルトの名無しさん
NGNGMSDNを読(以下略
0227デフォルトの名無しさん
NGNGボタンとかのコントロール作るときにそのフォントを変えたくて
hdc = GetDC(hWnd);
hFont = CreateFont(12,0,0,0,FW_NORMAL,0,0,0,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"");
SelectObject(hdc, hFont);
//コントロール作成
hControl = CreateWindow("BUTTON", "TEST",
WS_CHILD | WS_VISIBLE,
10, 10, 120, 15,
hWnd,
(HMENU)(IDC_TEST),
hInstance,
NULL);
SendMessage(hControl, WM_SETFONT, (WPARAM)hFont, lParam);
ってやったんですけど、
どうも機種によって変わったり変わらなかったりするみたいなんです。
もしかしたら、WINDOWS2000では変らないのかもしれないです。
どこがだめなのかわかる方がもしいたら教えていただけないでしょうか?
0228.
NGNG0229デフォルトの名無しさん
NGNGどんなフォントに変えたいわけ?
高さが12ピクセルって他は何も指定がないけど?
もともと12ピクセルのフォントを使ってる環境だったら、そりゃ変わらないでしょう。
もっと大きいフォントにしたり、フォント名を指定したりしないと、変化がわからないと思われ。
それからSendMessageの最後のlParamってなんだ。TRUEにしとけ。
0230デフォルトの名無しさん
NGNGレスありがとうです。
えっと、正確にはサイズを変えたいんです。
どうも文字のサイズが大きいので小さくしたいんですね。
ちなみに、デフォルトにしようとして、フォントを作らずに
SendMessage(hControl, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), lParam);
にしたら直りました。
どうも登録とかがされてないようですね。
0231デフォルトの名無しさん
NGNG今学校でCOBOLをやってるんですけど全然使えなさそうなので
CとかVisualCをやりたいんです。
基本が分かりやすく覚えれる本ってありますか?
0232デフォルトの名無しさん
NGNGどうやったらいいのかさっぱりわかりません。
ダイアログベースだと、TreeControlを貼り付けて
ツリービューを作ったりもできるんですが。
AppWizardでSDIを指定し、プロジェクトのスタイル
で「エクスプローラスタイル」としてみましたが、
どうやってデータを表示させたらいいのかが
わかりません。
教えてください。
0233デフォルトの名無しさん
NGNGすることになったんですが、入門用(環境のカスタマイズ
、VC++プログラミング)の参考書でいいのがあったら
教えてください。
0234デフォルトの名無しさん
NGNG他のスレッドで何度か書いたけど。
「プログラミング Windows 第五版」
通称 Petzold 本
0236デフォルトの名無しさん
NGNG234=233 重ねがさねスマソ
0237new BYTE[n]でいいのか?(^^;
NGNG単独質問スレ立ててしまって怒られて(^^;、こちらにお邪魔させていただきました。アドバイスを頂ければ幸いです。
クリップボードなんかの一部の特殊なモノを除いて、特にGlobalAllocを使う必要は無いというコトをよく聞きますが、では具体的にはどのような使い分けをしたほうがいい/しなければならないのでしょうか?
#C++なら%名前%だっつ〜話もありますが(^^;
私の認識は、本やWebを漁って
「基本的にmalloc。単発exeやシングルスレッドのモノはGlobalAllocなんかいらない(マルチスレッドでも、一つのスレッドで収まっていればmallocでOK)。
スレッド間でバッファを共有したりDLL作ったりするときはGlobalAlloc。ハンドルを渡して使うときだけGlobalLockして終わったらGlobalUnlockする」
と思っているのですが、この世界、本やWebに載っているコトが正しい確率はゴニョゴニョ、という世界ですので(^^;
実戦経験のある方のご意見を伺いたかったのです。
ちなみにやろうとしていることは、Bitmapをいぢる新しいクラスを作ろうとしてて、コンストラクタでバッファをmalloc、デストラクタでfreeで済ませようとしておりますぢゃ。これでOK?(^^;
0238デフォルトの名無しさん
NGNG呼ぶわけだしなー。GlobalAllocも、WIN32ではちっともglobalちがうし。
そーゆー、オーバーヘッドとか、デバッグサポートとか嫌なら、
GlobalAlloc使うのもいいんじゃないかな?
VirtualAllocとの比較はそれはそれでおもしろいかもしれんけどなー。
0239デフォルトの名無しさん
NGNG解放するとOSに返されるそうだよ
つまり、newやmallocは1度確保すると
そのアプリが終了するまで解放してもその確保したメモリ領域は
他のアプリは使用できない
もちろん当のアプリはもう一度new、mallocで確保すれば
その解放した領域を優先して割り当てられる
だと思いますが、間違ってたら訂正して下さい(−−
0240デフォルトの名無しさん
NGNGアロケートに対してはHeapAllocを呼んでるし、GlobalAlloc ≒ HeapAllocなんで、
機能的に差はないかと。
あと、仮想メモリ機構と、プロセスメモリの関係で、実メモリは他のアプリでも
使えるし、(freeしたとしても)そのリニアメモリをほかのプロセスが使うことは
無いかとも思いますが。そのあたりの説明、ってのはどうなんでしょうかね。
0241デフォルトの名無しさん
NGNGUnicodeやSJISやEUCを判別する機能に、変換する機能もほしいのですが。
APIやMFCのマクロには判別してくれるやつが見つからないのですけど。
0242デフォルトの名無しさん
NGNGmalloc(), free() と HeapAlloc(), HeapFree() の比較と言うことなら、前者は C ランタイムライブラリ関数
であるのに対し、後者が Win32 API であるのが最大の違いかと。
同一の処理系で閉じている場合はともかく、複数の処理系を使っていて、一方で確保したメモリを他方
で解放、などとしたい場合には API を使わないと死にます。
0243デフォルトの名無しさん
NGNGSJISやEUCはともかく、UnicodeはAPI使った方が楽。
ていうか、統計取る以外に判別する方法はない。
Unicodeに至っては、ヘッダ無しのプレーンテキストをプログラムで判別
する有効な手段は無い。
0244デフォルトの名無しさん
NGNG文字列を渡すと統計取ったりして解析して文字コードを判別してくれるライブラリはないでしょうか?
あとAPIはMultiByteToWideCharとかのことですか?
これはSJISもEUCもUNICODEに変換してくれるのですかね?
0245デフォルトの名無しさん
NGNGVectorに逝け。
0246デフォルトの名無しさん
NGNGstruct構造体のchar型の文字列はqsortで整列できたのですが…
どのようにすればできるか教えてください。
0247デフォルトの名無しさん
NGNGCString::LPCTSTRで返されるポインタは一時的なものです。
CStringを使うならCStringArrayとかの配列クラスを使い、qsortを
カスタマイズする必要あり。
0248デフォルトの名無しさん
NGNG返答ありがとうございます。
VC難しいですね。CStringのまわりからよく読んでみます。
0249new BYTE[n]でいいのか?(^^;
NGNGアドバイスありがとうございました。特に239の情報は初耳でした。大きなバッファを扱う場合は、シングルスレッド/単発exeでもGlobalAllocを使う意味がありそうですね。
0250デフォルトの名無しさん
NGNGおいおい、信じるなよ。free() すると、条件が整ってれば HeapFree() 呼び出すぞ。CRT のソース読め。
マルチスレッドの場合でも malloc() で確保したメモリ領域は、Mutex や CriticalSection オブジェクトを
使ってアクセスを排他制御すれば、複数スレッドから読み書きしても何ら問題ない。また GlobalLock()
は単にデータの移動/廃棄を禁止するだけで、アクセスの排他制御/シリアライズはしてくれない。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGで確保したメモリの先頭アドレスをインラインアセンブラで取得するにはどうすれば良いのでしょうか?
__asm { mov esi, array }
だと出来ませんでした
■ このスレッドは過去ログ倉庫に格納されています