くだすれVisual C++(超初心者用)その3

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/10/11(水) 00:12:23
だよな。
せめて、BDS2006を使えよ。
953デフォルトの名無しさん:2006/10/11(水) 00:16:05
くだすれVisual C++(超初心者用)
954デフォルトの名無しさん:2006/10/11(水) 00:17:31
スルーすりゃいいのに、自分に向けられた発言だと思い込む人もいるんですね。
955デフォルトの名無しさん:2006/10/11(水) 00:24:56
うん。
956デフォルトの名無しさん:2006/10/11(水) 00:50:41
うんにゃ。
957デフォルトの名無しさん:2006/10/11(水) 01:10:46
>>933
は何を思ってこのスレッドを質問対象にしたのだろう
そんなことを考えて眠れなくなりそうだ
958デフォルトの名無しさん:2006/10/11(水) 01:11:44
つーか、眠れないw
明日4時おきなのに・・・
959デフォルトの名無しさん:2006/10/11(水) 01:25:27
>>958
後26時間もあるんだから、今眠れなくても問題ないだろ。
960デフォルトの名無しさん:2006/10/11(水) 01:30:07
>>959
間違った、今日の4時
あと2時間半でおきなきゃ
961デフォルトの名無しさん:2006/10/11(水) 01:33:05
その状況で寝ると、大音響の目覚ましをスルーするか、
さもなくばスヌーズつきの目覚ましをきっちり止めて棚に戻したことも
記憶に残らずそのまま寝直す漏れがきましたよ。
962デフォルトの名無しさん:2006/10/11(水) 08:37:49
>>937
スレ違いなんでこれ以上はレスしないけど。
MFCなら一応CBitmap, BCBならTBitmapというのがあるけど画像処理用では無いので細かい
ピクセル扱うには使い辛い、画像処理系ならこの辺は自作が基本、詳しくはCreateDIBSection等
でぐぐってみ、後画像のロードもヘッダ解析して自前でロードが基本、その辺が面倒なら描画
は遅いけどGDI+等のライブラリなどを使う方法もある、MSから落とせたりその辺にヘッダ込み
で置いてたりするけどVC++では無くBCBの場合はそのままでは使えないのでインポートライブラリ
は自分で用意の事。
963デフォルトの名無しさん:2006/10/11(水) 12:59:20
ビットマップだけならLoadImage、JPEGとかも対応するならOleLoadPicture
って感じで自分は手抜きしてる。ヘッダ解析('A`)マンドクセ
964デフォルトの名無しさん:2006/10/11(水) 14:52:43
>>963
OleLoadPictureは使った事無いけどLoadImageってDDBじゃなかったっけ、ピクセル
参照するのにGetDIBitsでオリジナル以外にコピー作成するし、メモリ転送のオーバヘッド
や保存する場合結局BITMAPINFOでヘッダ作る必要があったりでイマイチ効率的で無い気が、、、
965デフォルトの名無しさん:2006/10/11(水) 19:14:49
LR_CREATEDIBSECTIONでDIBゲット(゚Д゚)ウマー
966デフォルトの名無しさん:2006/10/11(水) 22:42:07
>>961
スレ違いなので、これで最後
結局1時間だけ眠って、日帰り出張行ってきたよ
往復7時間の移動+防塵ルーム5時間の過酷なスケジュールだったけど
なんとかソフトも立ち上がって無事帰ってこれたw
さすがに眠い
967デフォルトの名無しさん:2006/10/12(木) 17:34:48
VC2005 MFC ダイアログベースでやっております。
自分で関数を作ってそれを使おうと思ったらこのようなエラーがでました。
[ファイル名]Dlg.cpp ファイルの中に書いてあります。

error C3861: 'Get8': 識別子が見つかりませんでした
error C2365: 'Get8' : 再定義; 以前の定義は '以前は不明な識別子' でした

これはどういうことでしょうか?
関数自体は正しく書けてるのですが、その関数を実際使おうとするとこのエラーになります。
お願いします><
968デフォルトの名無しさん:2006/10/12(木) 17:57:39
>>967
「Get8」という名前が有効でない場所で使おうとしている。
それだけでは、これしか言えない。
969デフォルトの名無しさん:2006/10/12(木) 17:59:47
>>967
Dlg.hにGet8のプロトタイプ書いてないなんてオチは勘弁な
970デフォルトの名無しさん:2006/10/12(木) 18:22:39
>>969
別にプロトタイプなんて要らないじゃん。

#つーことは、>967はそれ以前の状態か。
971デフォルトの名無しさん:2006/10/12(木) 18:37:08
外部のexeやdatに引数を渡して実行したいんですけど、どうすれば良いんですか?
972デフォルトの名無しさん:2006/10/12(木) 20:46:32
>>971
datってなんだ?

exeは
system("a.exe aaaaabbbbcccc");
とか?
973967:2006/10/12(木) 22:12:46
>>968-970
うーん、それ以前の状態と。。。
私はただ、ボタンがクリックされた時のアクションとかを書くところに
void CpictORGDlg::OnBnClickedButton4()

・・・
a=Get8(2, i, j, pDC);
}

Get8(int a, int b, int c, CDC* pDC)
{
return ほにゃらら;
}

みたいにすぐ下にGet8を書いただけなんですけど他にやるべきことがあったのでしょうか?

974デフォルトの名無しさん:2006/10/12(木) 22:22:38
Get8(int a, int b, int c, CDC* pDC)
{
return ほにゃらら;
}
void CpictORGDlg::OnBnClickedButton4()

・・・
int a=Get8(2, i, j, pDC);
}

975デフォルトの名無しさん:2006/10/12(木) 22:29:02
VC++2005ですが、ヘッダーファイルを記述しなくても
関数が使えるのはなぜでしょうか?
976967:2006/10/12(木) 22:44:48
>>974
入れ替えるだけでできました><
すいません、こんな単純なことで><
977デフォルトの名無しさん:2006/10/12(木) 22:56:48
>>975
C++ではなく、Cならプロトタイプ宣言(の含まれたヘッダをインクルードすること)なしでも関数を呼び出せる。
決して勧めはしないが。
978デフォルトの名無しさん:2006/10/12(木) 23:40:44
>>977
 VC++2005でもできましたが?
やはり、ヘッダ書いた方が動作が速かったり、誤作動起こさない
っていうのがあるのでしょうか?
979デフォルトの名無しさん:2006/10/12(木) 23:45:39
は?
980デフォルトの名無しさん:2006/10/13(金) 00:34:05
>974のように、先に定義がある場合はプロトタイプ宣言は必要ない。
逆に言えば、定義がない場合や定義より先に使いたい場合には必要となる。
981デフォルトの名無しさん:2006/10/13(金) 05:41:42
>>972
間違えました、batです。
systemはbatも実行できますか?
982デフォルトの名無しさん:2006/10/13(金) 06:32:32
>>981
やってみれや
983デフォルトの名無しさん:2006/10/13(金) 06:38:27
>>982
ありがとうございました。
984デフォルトの名無しさん:2006/10/13(金) 07:41:16
文字列を渡してFindFirstFile関数でファイルをチェックする関数を作ったんですけど、
寿命の短い範囲にHANDLE変数を宣言して、頻繁に生成と破棄を繰り返すのは邪道ですか?
985デフォルトの名無しさん:2006/10/13(金) 08:20:32
>>977
インクルードしなくても動作するのになぜインクルードしないと
いけないのですか?利点はなんですか?
986デフォルトの名無しさん:2006/10/13(金) 08:54:43
もはやスレ違い
987デフォルトの名無しさん:2006/10/13(金) 08:59:08
>>984
好きにするがいい
988デフォルトの名無しさん:2006/10/13(金) 12:03:49
>>985
標準関数についてならば、標準インクルードファイルをインクルードすると型チェックが正しく働くと言うメリットがある。
例えば、string.hをインクルードせずにstrcpy()と書くとコンパイルはできるが当然まともには動かない。
989デフォルトの名無しさん:2006/10/13(金) 15:28:58
VisualC++6.0を使ってBMPファイルをリソースから
ロードするプログラムを作っているのですが、
コンパイルした後、EXEを別の場所にもっていって
実行すると、bmpファイルが見つからないエラー
が発生します。
DebugおよびReleaseフォルダに作成される
Script1.rcには間違いなく画像データが組み込まれて
いるのですが、これは何故なのでしょうか。


990989:2006/10/13(金) 15:30:08
>>989
Script1.rcではなくて
「Script1.res」の間違いです
991989:2006/10/13(金) 15:45:21
すいません、自己解決です。
別のリソース(Xファイル)からbmpを
コールしているところがありましたorn..
992デフォルトの名無しさん:2006/10/13(金) 16:51:38
>>978
VC++ 2005だって拡張子がcのファイルをコンパイルさせればCコンパイラとして働く。
993デフォルトの名無しさん:2006/10/13(金) 21:24:30
今DialogクラスのOnInitDialog内でリストにデータを挿入するコードを記述しております。

CListCtrl* pTeikouCtl = (CListCtrl*)GetDlgItem(IDC_LIST);
for(int iCnt = 0; iCnt < (int)m_Vector.size(); iCnt++){
pTeikouCtl->InsertItem(iCnt, vector[iCnt]);
}
UpdateData(FALSE);

実行してみたのですがリストには何も入っていませんでした。
どこか間違いなどありましたらご指摘をお願いいたします。

開発環境 VS2005 MFC WinXP SP2
994デフォルトの名無しさん:2006/10/13(金) 21:32:29
コードが少し間違っておりました。

今DialogクラスのOnInitDialog内でリストにデータを挿入するコードを記述しております。

CListCtrl* pListCtl = (CListCtrl*)GetDlgItem(IDC_LIST);
for(int iCnt = 0; iCnt < (int)vector.size(); iCnt++){
   pListCtl ->InsertItem(iCnt, vector[iCnt]);
}
UpdateData(FALSE);

実行してみたのですがリストには何も入っていませんでした。
どこか間違いなどありましたらご指摘をお願いいたします。

開発環境 VS2005 MFC WinXP SP2
995デフォルトの名無しさん:2006/10/13(金) 21:39:19
>>994
IDC_LISTはリストビューコントロールのIDか?
リストビューの表示タイプ(Icon,Report等)は?
表示タイプがReportの場合カラムヘッダはちゃんと追加してあるか?
InsertItemの戻り値は?
996994:2006/10/13(金) 21:49:35
>>995
リストビューではなくリストボックスでした。リストビューに変更したほうがよろしいでしょうか?
ちなみにInsertItemの戻り値はすべて0でした。
997995:2006/10/13(金) 21:57:36
>>996
好きなほう使えばいい。
リストボックスを使うならGetDlgItemの戻り値をCListBoxにキャストして
AddStringすればいい。
998994:2006/10/13(金) 22:03:57
>>997
リストボックスのままで行きます。
教えてもらった方法でうまくデータを挿入できました。
ありがとうございます。
999デフォルトの名無しさん:2006/10/13(金) 22:22:17
1000デフォルトの名無しさん:2006/10/13(金) 22:29:12
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。