[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/05 22:03 / Filesize : 248 KB / Number-of Response : 984
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:16:11 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

341 名前:デフォルトの名無しさん [2008/12/11(木) 21:14:25 ]
Visual C++ 2008 Express Editionについての質問です。

Windowsフォームアプリケーションプロジェクトを作成し、
フォームにボタンとpictureBoxを配置しました。
ボタンを押すと、pictureBoxのプロパティで設定した画像の画素値を取得したり
描きこんだりしたいと思い、画像にアクセスする手段を模索することにしました。

どうもpictureBoxクラスから直接画像にアクセスすることはできず、
いったんBitmapクラスに移さないといけないことが分かりました。
これでSetPixel関数を使って、画素値を書き換えることができるようになったのですが、
これをまたpictureBoxに戻して表示することができません。

コードは以下の通りです。(ボタンを押したときの処理関数)

Bitmap bmp = pictureBox1->Image;

bmp.SetPixel( 10, 10, Color::Red );
pictureBox1->Image = bmp; ← これで型が合わないというようなエラーが出る

どのようにすればpictureBoxの画像を加工し、それを表示することができるのでしょうか?

342 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 16:23:46 ]
pictureBox1->Image = Image::FromHbitmap(bmp.GetHbitmap());とかでどう?

343 名前:デフォルトの名無しさん [2008/12/12(金) 17:44:23 ]
すいません。C++でint型の変数ををchar型の配列にキャストして入れる方法ってどうやるのですか?
int iAnswer = 0;
int i = 0;
char ChAnswer[256];

ChAnswer = (char)i;

とやっているのですが、変換できないといわれます。

344 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 17:46:28 ]
ChAnswer[0] = (char)i; じゃないの?

345 名前:デフォルトの名無しさん [2008/12/12(金) 17:51:27 ]
>>344
それだと、例えば123を変換した場合、1だけ変換ということになりそうな気がするのですが・・・違いますか?

346 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 18:00:16 ]
>>345
何でそう思うのか、、もっと基礎からやり直すか
具体的にやりたいこと書いて手取り足取り教わるしかないと思うよ。

347 名前:デフォルトの名無しさん [2008/12/12(金) 18:02:26 ]
>>346
すいません。よく考えてたら頭の中にあったものが2次元配列でした・・・それにしても変な考えですけど。
逝ってきます。

348 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 00:30:18 ]
エスパー回答で言わせてもらえばsprintf()使えばいいと思うよ

349 名前:341 mailto:sage [2008/12/13(土) 07:31:03 ]
>>342
それでできました!
ありがとうございました!!

しかし、.NET環境でもWin32apiレベルのビットマップハンドルを意識した記述をしないと
いけないのはどうなのかと思いました・・・
C++ Builderはもっとシンプルになりますし・・・



350 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 09:01:26 ]
>>341
たぶんこうすればいける。
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image);
bmp->SetPixel(10, 10, Color::Red);
pictureBox1->Image = bmp;

Imageプロパティの型はImageへのハンドル。
にもかかわらず、341ではコード上Bitmapそのものを渡すようになっている。
本来、BitmapはImageの派生なので、Bitmapのハンドルなら渡せるというわけ。

351 名前:341 mailto:sage [2008/12/14(日) 00:49:49 ]
>>350
.NETでのハンドルという概念があるんですね。
勉強になりました。
ありがとうございました。

352 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:25:51 ]
VC2008EEで↓がコンパイルできるようにする
やり方を教えてください。

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
return 0;
}


353 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:28:02 ]
エラーは↓です

1>.\a4.cpp(4) : error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。
1>.\a4.cpp(4) : error C2065: 'HINSTANCE' : 定義されていない識別子です。
1>.\a4.cpp(4) : error C2146: 構文エラー : ')' が、識別子 'hInst' の前に必要です。
1>.\a4.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>.\a4.cpp(4) : error C2059: 構文エラー : ')'
1>.\a4.cpp(5) : error C2143: 構文エラー : ';' が '{' の前にありません。
1>.\a4.cpp(5) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)


354 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:36:58 ]
>>353
WINAPIが定義されてないっぽい感じのエラーメッセージだけど、
windows.hはインクルードされてるしなぁ。

355 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:49:57 ]
>>352
普通にコンパイル通ったよ
プロジェクトの作成の仕方じゃないの?

ファイル→新規作成→プロジェクトの種類→Win32→Win32プロジェクト

356 名前:デフォルトの名無しさん [2008/12/14(日) 12:25:43 ]
Vc++2008でプロジェクトを開いた時に、
▲ InteliSenseデータベースファイル C\......\Visual Studio\Projects|\ソリューションフォルダ\ソリューション.ncb を書き込み用に開けなかったため、
InteliSense 情報は VC++プロジェクトにりようできません。
ソリューションディレクトリが読み取り専用である場合、他の機能にも影響を及ぼします。

ってダイアログ出て、関数の引数とかが表示されなくなってしまいました。
フォルダの属性変えてみようとしたんだけど読み取り属性外せなくなったんですが、対処方ありますか?
他のソリューションでは問題ありません。ファイル壊れた?

357 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 17:24:46 ]
メッセージの通りだろ

358 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 18:02:51 ]
ncb ファイル消せばいい。

359 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 09:28:10 ]
ボタンを二つ作ってサブクラス化しています。
DefStaticProcA = (WNDPROC)GetWindowLong(hBTNa, GWL_WNDPROC);
SetWindowLong(hBTNa, GWL_WNDPROC, (LONG)TestProc);

DefStaticProcB = (WNDPROC)GetWindowLong(hBTNb, GWL_WNDPROC);
SetWindowLong(hBTNb, GWL_WNDPROC, (LONG)TestProc);

if(DefStaticProcA == DefStaticProcB)
  MessageBox(NULL, _T("同じ"), _T("button"), MB_OK);

ボタンのプロシージャはみんな同じアドレスに成るのでしょうか?
プロシージャを一つにまとめたいです。




360 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 10:48:05 ]
HWND HBTNv6[1000];
WNDPROC DefStaticProcBTN[1000];

void MakeButtonV6(HWND hWnd){
int i;
for(i = 0; i < 1000; i++){
HBTNv6[i] = CreateWindow(_T("BUTTON"), _T("A"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 30, 30, 20, 20, hWnd, NULL, hInst, NULL);
if(HBTNv6[i] == INVALID_HANDLE_VALUE){
MessageBox(NULL, _T("Error"), _T("CreateWindow"), MB_OK);
break;
}
DefStaticProcBTN[i] = (WNDPROC)GetWindowLong(HBTNv6[i], GWL_WNDPROC);
if(DefStaticProcBTN[i] == 0){
MessageBox(NULL, _T("Error"), _T("GetWindowLong"), MB_OK);
break;
}
if(i > 0){
if(DefStaticProcBTN[i] != DefStaticProcBTN[i -1]){
MessageBox(NULL, _T("違う"), _T("ぼ"), MB_OK);
break;
}
}
}
MessageBox(NULL, _T("終了"), _T("m"), MB_OK);
}

保障されているのかな〜。誰か教えて。

361 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 10:52:55 ]
何がしりたいのかわからん。
登録したウィンドウクラスにプロシージャも入ってるだろう。
でも同じプロセス内で差し替えできるから作った時期で違うようにはできる。

362 名前:360 mailto:sage [2008/12/15(月) 11:38:13 ]
ごめん、無かったことにして。

363 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 17:35:59 ]
>>359
さらに別のだれかがサブクラス化しているなどといったこともあるから、
一般に同じと仮定することは危険。

ウィンドウハンドルと元のウィンドウプロシージャのどれとどれが対応するのか
分かるように保存しておけば、それぞれのアドレスが異なっていても
同じウィンドウプロシージャでサブクラス化できるはずだ。

364 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 22:35:59 ]
3×n行のCSVファイルを読み込んで内部テーブル(?)にして、
後からそれを1行ずつ抽出してその項目を使って別の処理をするように今あるプログラムを書き換えたい。

VC++2005、WindowsXPで作業してます。
かなりの初心者ですがどうぞよろしくお願いします。

365 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 22:41:01 ]
宿題なら宿題スレで一発ですよ。
そうでないなら、どこは分かるけどどこが分からないというのをもっとはっきりさせてください。

366 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 22:53:16 ]
宿題じゃないんす・・・仕事なんですw
CArrayとか使ってみたんだけど、なかなかうまくいかず・・・
あと、内部テーブルを1行ずつ読み込んでループさせる方法がよくわからん。
レベル低い質問で申し訳ないです

367 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 00:18:30 ]
誰か来てくれると信じて書いてみるw

INT CLogFileConditions::LoadAllSearchInfo()
{
CCSVFile file;
CFileException fError;
CString sSearchListFile;

m_iResID = 0;
m_iConditionStatus = 0;
sSearchListFile = g_CurrentDir;
sSearchListFile += LOG_SEARCH_LIST_FILE;

if( file.Open( sSearchListFile, CFile::modeRead, &fError) )
{
CString strLogKind, strServerName, intSearchLength, sVal ;

m_LogKindToPath.RemoveAll();

while( file.ReadString() )
{
if( file.GetFieldCount()>=3 )
{
strLogKind = file.GetField(0);
strServerName = file.GetField(1);
intSearchLength = file.GetField(2);
}


368 名前:つづき mailto:sage [2008/12/16(火) 00:20:27 ]
}
file.Close();

if( !m_LogSearchCondition.GetCount() )
{
m_iResID = IDS_ERR401;
m_iConditionStatus = 401;//ErrorIDNumber
}
}
else {
m_iConditionStatus = -1;
MsgBoxBySystemErrID( m_hwndParent,
fError.m_lOsError,fError.m_strFileName );
}
return m_iConditionStatus;
}

みたいな感じで処理条件を読み込む処理をまず作りたい。
ひとつめのレスの最後の方の処理をCSVを読み込む二次元配列にしたいんだ。
どうぞお力をお貸しください。。

369 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 00:38:08 ]
普通に配列をnewして入れてけばいいじゃんか



370 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 00:46:41 ]
ありがとう。
でもほんと全然わかんないんだw
もうちょっと詳しく書いてくれると助かります。
ごめんな

371 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 00:53:34 ]
コレクションクラスが使えるようになったほうがいいと思うけどねぇ・・
まずどこに入れたいのか、入れ物を定義しなさいよ。

372 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 01:04:47 ]
すまんコレクションクラスがわからん・・・

まあ定義もよくわかんないんだけどw
ネットで見ようみまねで

public:
CArray<double, double> GetLogSearchCondition(){ return &m_LogSearchCondition; }
  CDoubleArray& operator=( CDoubleArray& src )
  {
    for( int n = 0; n < src.GetSize(); n++ ) {
      this->Add( src[n] );
     }
     return *this;
   }
};

こんなん書いたらエラーが270個くらい出ました。。

373 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 01:14:20 ]
二次元配列にしたいって書いてるけど3つのフィールドは文字列文字列整数なんだよね?
とりあえずその3つが入るクラスを定義して、それの配列なりArrayなりつくって入れてけばいい。
長さわからんなら、数える手段を考えるか随時伸びるようにすればいい。

374 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 01:19:27 ]
そう、そうなんだけどそのやり方がわかんないんです。
ほんとすいません。。

375 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 01:30:52 ]
クラスの定義ってこういう感じ?

public:
void SetLogKindForSearch( CString sLogKindForSearch );
void SetServerNamesForSearch( CString sServerNamesForSearch );
int SetSerachLength( INT sSearchLength );

だが、配列にしていく方法はさっぱりだぜ・・・

376 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 02:56:10 ]
CArrayを先頭につければいいのかな?
だかフィールド3つで下に続いていくようにする方法がわからぬ・・・

377 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 04:03:43 ]
CMapStringObからCArrayに引数を変換できないっていうエラーが出るんだが、
意味が全くわからん・・・

誰も起きてないかこんな時間・・・

378 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 05:59:41 ]
言語の文法をろくに知らずにプログラムを書こうなんて、普通に不可能。
まず入門書を一通り読め。

379 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 07:01:34 ]
そんな時間がないのでご助力をお願いしているのです。。



380 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 08:54:27 ]
>>363
d。
ボタンのプロシージャはどれでも良いからボタンに返せばいいんですね。


381 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 11:50:08 ]
>>379
みんな冷たいよな。

まずはここを見て書き方を勉強する。
2hyo.com/

382 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 14:18:46 ]
仕事の話を2chで聞くとか信じられんわ……。

383 名前:デフォルトの名無しさん [2008/12/16(火) 15:04:12 ]
文字をドラッグで選択するとその部分が反転するプログラムを作りたいのですが、
マウスのクリックで範囲のポジションを取得して選択範囲は取得できたのですが、
反転をどうやればいいのかがわかりません。アドバイスお願いします。

384 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:05:18 ]
まあ自分でコード書いて出してくれてるから対応はしやすいんだが、
出してくるコードが頓珍漢すぎてどこから説明したもんかわからんのだよ。
自分で理解してる範囲で書いてくれればいいんだが、適当にあちこちから断片集めてみました
というコードじゃ直しようもない・・・
仕様書いて0から起こしたほうがまだましだな・・

385 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:08:07 ]
>>383
反転する前の表示はどうやってんのさ。
TextColorとBackColor入れ替えて書いてみるとか、
システムの標準の色から持ってきてそれで書いてみるとか。

386 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:16:20 ]
>>385
元描画がいじれないとして、上から被せるような、CWndまでおおげさじゃなくてもいいんですが、
レイヤー的なもので半透明領域をかぶせられる関数は用意されていないでしょうか?

387 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:27:11 ]
>>386
そんなのないと思うけど、、、再描画とかどうすんのさ。
いんちきだが、PatBlt()でDSTINVERTで反転とかどうよ。

388 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 16:48:52 ]
なるどほ、元が動くと四角が付いてこないので被せるのは厳しいですね。
元をハッキングする方向にきりかえようとおもいます。ありがとうございました。

389 名前:デフォルトの名無しさん [2008/12/16(火) 17:51:24 ]
C++でint型変数の値をchar型に変換したいのですが、普通にキャストしてもエラーが出ます
どうしたらいいのでしょう?



390 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 17:55:03 ]
char配列の文字列にしたいと言っているのであれば、
ostringstreamか何かでstringにしてc_str()で取り出すとか、
あるいはsprintfなど。

391 名前:デフォルトの名無しさん [2008/12/16(火) 18:03:23 ]
ありがとうございます。試してみます

392 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:00:10 ]
林晴比古氏のVisualC++のビギナー編を買ったのですが、自分の開発環境がexpress editionなのでMFCがありません。
サンプルがほぼMFCなので無駄な買い物をしてしまった…と見ていいのでしょうか?
他に手があるのでしょうか?

393 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:43:46 ]
かわいそう・・・
仲間だからわかる・・・

394 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:47:06 ]
やはり無理でしたか…
VisualStudioの基本的な操作を覚えるには役に立ちますよね?
お互いがんばりましょう。

395 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:29:59 ]
まったく役に立たないと思います。
MFCが使えるようになってからも役に立たない本でした。
林晴比古のC++シニア上下は、ぼろぼろになった今でも時々読みます。

www.kumei.ne.jp/c_lang/
自分はMFCからなのですが、ここのWinAPIの最初の方だけ読んで一日でMFC使わないソフトも作れました。


396 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:45:26 ]
最近の林本は.netのサンプルものってたような気がしたけど

397 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:56:27 ]
>>395
そちらを買うか林氏の本を買うかで悩んでたんです。そちらのほうがよかったのですね!

>>396
.netのサンプルとは例えばどのようなものでしょう?


398 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:22:29 ]
ソフトの操作だけなら林本でいいと思う


399 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:31:09 ]
>>398
そう言ってもらえると助かります!
みっちり操作を体に叩き込みたいと思います!



400 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:27:36 ]
MFCを使えるバージョンってどれですか
無償版では使えないらしいので購入しようと思います
MFCを使えるバージョンと購入方法と価格を教えてください

401 名前:M [2008/12/16(火) 23:30:14 ]
C++でのラベリングで下のような場合で、簡単なプログラムのやり方を教えてくれませんか?

11111111
11111
1111111111  
1111111     
11111111
1 1     2222
       2222
       222222



402 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:33:06 ]
MFCは全てのバージョンで使える

403 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:46:58 ]
>>400
kakaku.com/item/37600110112/

404 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 09:30:25 ]
2003以前のバージョンなら確実に使える

405 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 19:36:51 ]
上級者向けの本ってあるんですか?

406 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 20:03:15 ]
>>400です
>>403さん
スタンダードバージョンでMFC使えるんですね
アマゾンで28000円かぁ
少々きつい出費になりますが
どうしても作ってみたいものがあるので思い切って購入しようと思います
詳しくありがとうございました
ヤマダ電機では売っていないのかなあ?
ヤマダポイント約6000円持ってるんだよね^^;
教えてくれてありがとうでした


407 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 20:09:15 ]
VC++2008 Express使ってます。
Windows SDKを最新のものにしようと思い、2005使っているとき以来のPSDKを削除、
ついでにVC++2008も一旦削除して、さてインストールし直すぞ、と意気込んでいるのですが、
VC++2008をインストールすると、Microsoft Windows SDK for Visual Studio 2008とやらが自動でインストールされるそうで。
この場合、一旦これをアンインストールしてからMicrosoft Windows SDK for Windows Server 2008をインストール、でOK?


408 名前:デフォルトの名無しさん [2008/12/17(水) 21:01:49 ]
Microsoft Visual C++ 2008 Version 9.0.21022.8 RTM
Win32コンソールアプリケーション
ビルドの失敗
ソース↓
// test_1.cpp
#include "stdafx.h"
#include "test_2.cpp"

class test_A{
static const int INT_A;
static const char *TEXT_A;
};

const int test_A::INT_A=1234;
const char *test_A::TEXT_A="abcd";

int _tmain(int argc, _TCHAR* argv[]){
return 0;
}

// test_2.cpp
#include "stdafx.h"

class test_B{
static const int INT_B;
static const char *TEXT_B;
};

const int test_B::INT_B=1234;
const char *test_B::TEXT_B="abcd";

409 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:03:02 ]
>>408のつづき。

ビルトをするとtest_Aは成功、test_Bは失敗します。ただし、一回目のビルドで
両方とも成功しているのに、その後同じ内容で二回目のビルドを行うと
やはりtest_Bだけ失敗するようになる、という場合もあります。
↓   ↓   ↓
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。

どこが原因なのか分かりません。



410 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:12:24 ]
>>406
こうして2005Express Editionからアップグレードできることを知らない情弱が
今日も通常版を買っていくのであった・・・
www.microsoft.com/japan/msdn/howtobuy/vs2008/upgrade/default.aspx

411 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:35:52 ]
げっ・・・・・・プロジェクト→クラスの追加、でやってみたら、なんとなく
やらなければいけないことが分かりました・・・・・・・・orz

412 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:42:50 ]
>>408,409
// test_1.cpp
#include "test_2.cpp" // ←LINK1169

"test_2.cpp"をプロジェクトから除外するか、上記をコメントアウトすれば解決する。

413 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:53:48 ]
>>412

_tmainでtest_Bが使えませんが・・・。

414 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:12:06 ]
>>413
test_2.cppをプロジェクトから除外すれば使える。


415 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:22:12 ]
>>414

「プロジェクトの外部」って扱いにしてから、呼び出すんですね?

416 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:33:59 ]
>>415
そうだよ。どのみち #include "test_2.cpp" してんだから。
もっとも、#include "test_2.cpp"などというよーな書き方のほうを改めるべきだと思うがな。

// test.h
class test_A{
static const int INT_A;
static const char *TEXT_A;
};

class test_B{
static const int INT_B;
static const char *TEXT_B;
};

// test.cpp
#include "stdafx.h"
#include "test.h"

const int test_A::INT_A=1234;
const char *test_A::TEXT_A="abcd";

const int test_B::INT_B=1234;
const char *test_B::TEXT_B="abcd";

int _tmain( ・・・・) {
// To Do
}

417 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:51:08 ]
ありがとうございました。
初歩の初歩でした。

418 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 04:18:43 ]
cppをインクルードする奴ってキモチワルイ
あとヘッダに関数の中身定義する奴も同様にキモイ

419 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 05:05:35 ]
>>418
template関数全否定ですね、わかります



420 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 09:59:14 ]
>>410
というわりにはExpression Blend 2のアップグレードが割引率高くて安いうえに
VS2008Stdが入ってるのは教えてあげないのね。

421 名前:デフォルトの名無しさん [2008/12/18(木) 11:45:07 ]
Visual Studio 2005 でC++をやっているのですが
i = 0;
for(i = 5; i < 0; i--){
printf("%d",i);
fflush(stdout);
Sleep(1000);
}
この処理を通ってくれません。forの頭までは来ているのですが次の処理でforを抜けてしまっています

422 名前:デフォルトの名無しさん [2008/12/18(木) 11:49:24 ]
C++なのにprintfなんだ・・・

423 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 11:52:05 ]
>>421
i > 0
にしろ
それとi = 0は必要なのかね


424 名前:デフォルトの名無しさん [2008/12/18(木) 11:52:40 ]
すみません。書き間違いです
コンパイラがC++で、書いてるのはCです

425 名前:デフォルトの名無しさん [2008/12/18(木) 11:55:33 ]
おお、いつのまに符号逆に・・・・最初は使えていたのにおかしいと思いました。すみませんありがとうございます
i = 0 はなんとなく癖です

426 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:00:53 ]
下らないかもしれないけど、助けて下さい・・・。
VS2008でC++作ってます。
Irvineとかそういうダウンローダーでよくあるグリッドの入ったリストを作りたいんだけど、そのパーツ?コンポーネント?の名前さえも全くわからず・・・。
ToolBoxでコレだよ、的なもので良いので教えて下さい。

427 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:28:37 ]
>>426
Microsoft DataGrid コントロール
ActiveXのやつ

428 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:31:39 ]
ってIrvineとかそういうダウンローダーを知らないんだけど
LisiViewコントロールじゃだめなんかな?

429 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:35:23 ]
ListViewってアイテムごとに枠がつかなくないか?エクセルみたいに



430 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:45:03 ]
>>427
ありです。ちょっと試してみますー。

431 名前:426 mailto:sage [2008/12/18(木) 12:55:29 ]
出来たけどRowの部分に出てるのが気になる・・・orz

>>429
Excelみたいに各セルが選択できるタイプじゃなくて、選択の対象が行単位で出来るものが良いんですよね。
今ちょうど見たら良い例があったので出してみると、ギコナビの板の中身の表示部分(スレッド一覧)とか。
それにグリッドがついたようなものが欲しいです。

色々と足りてなくて申し訳ない・・・orz

432 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 13:01:10 ]
リソースのストリングテーブルって1つ以上作れないんですが、
文字列をまとめて入れ替えたい場合はどうすればいいんですか?
もしかして全てのloadstringの行でIDSを分岐させてるんですか?

433 名前: [2008/12/18(木) 13:12:37 ]
>>432
IDをずらす

LoadString(hInstance, IDS_MYSTRING + (f ? 10000 : 0), sz, 256);

434 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:04:50 ]
えーまじですか・・・
めちゃくちゃloadStringあるんですけど・・・テーブル切り替えでがいいです!!!

435 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:10:49 ]
DLL単位で作って切り替えるとか

436 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:15:33 ]
おーーーthx!DLLで検索したら出てきましたよ!


437 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:26:36 ]
Irvineはソース公開されてる

438 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:59:50 ]
カスタムコントロールを派生させたいんですが、これ基本クラスなんですか?
CCustamCtrlとかないんですが

439 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:04:26 ]
MFCの話?
コントロールはCWndから派生



440 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:19:02 ]
カスタムコントロール自体のクラス名は何ですか?

441 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:23:54 ]
>>440
Static






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef