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


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

★初心者にVisual C++を教えるスレ★ Part12
251 名前:247 :04/05/17 11:37
本当だ・・
InstallShieldなどで検索して出てこなかった時点で諦めていました。
あちらで聞いてみます。

252 名前:デフォルトの名無しさん :04/05/17 11:39
>>246
UpdateData()しなさいって話なのかな?

253 名前:デフォルトの名無しさん :04/05/17 11:46
ここでももしおわかりの方がいたら教えていただけたら幸いです。
ありがとうございました。

254 名前:デフォルトの名無しさん :04/05/17 12:06
ダイアログを新たに作ってそこにエディットボックスを配置したとき、
ダイアログウィンドウのサイズが変わったら、エディットボックスの
大きさも変わるようにするにはどうすればいいのでしょうか?

255 名前:246 :04/05/17 12:39
>>252
UpdateData()はやってみましたがだめでした(テキスト表示されませんでした)
ちなみに実際の画面の切り替えは次のようにしています

BaseForm *next = new pend();
this->GoNext(this);

void GoNext(BaseForm *current) {
current->next->Show();
current->Visible = false;
}


256 名前:デフォルトの名無しさん :04/05/17 14:45
MoveWindow

257 名前:254 :04/05/17 16:04
>>256

ご指摘のとおり WM_SIZEでメッセージを受け取りMoveWindow でサイズを変更することが出来ました
ありがとうございます。

258 名前:デフォルトの名無しさん :04/05/17 18:32
かなり初歩的な質問だと思うのですが・・・

最近、複数人でVCでアプリ開発を行い、同名のプロジェクトでそれぞれ作成をしました
そして、それを1つのプロジェクトにまとめたいと思っているのですが、まとめる方法と言うのが分かりません。

プロジェクトをワークスペースに挿入を行おうとしても、同一プロジェクトなので行えません
プロジェクトの統合方法がありましたら教えてくださらないでしょうか

259 名前:デフォルトの名無しさん :04/05/17 20:02
>>258
どっちかってーと初歩的なミスだな。

.NET は知らんが、VC++ 6.0 ならプロジェクトファイル (.dsp) はテキスト。
メモ帳かなんかで開いて、プロジェクト名を一括置換しる。

260 名前:デフォルトの名無しさん :04/05/17 20:21
VC++ 6.0でキーボードの設定をカスタマイズしたんですが、
これを別のパソコンに持ち運ぶことって出来るんですか?
いちいち手作業で設定するの面倒です。

261 名前:デフォルトの名無しさん :04/05/18 00:03
すいません
>>8はどうすればよいのでしょうか


262 名前:デフォルトの名無しさん :04/05/18 00:21
>>261
プロジェクトのプロパティページを開く。
以下、同様に。

263 名前:デフォルトの名無しさん :04/05/18 00:56
VC++6.0で質問です。
ファイルを保存するコモンダイアログを出したいのですが上手くいきません。

具体的には、
char filename[256];

OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));

ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter = "BMPファイル(*.bmp)\0*.bmp\0全てのファイル(*.*)\0*.*\0\0";
ofn.nFilterIndex = 1;
ofn.lpstrFile = filename;
ofn.nMaxFile = sizeof(filename);
ofn.Flags = OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
if(!GetSaveFileName(&ofn)){
return;
}

このコードで、そもそもダイアログが表示されません。
CommDlgExtendedError()でエラー値を見てみると、
0x0002、CDERR_INITIALIZATION:初期化の際にコモンダイアログボックス関数が失敗しました。
・・・らしいのですが、いろいろなページを見ても
OPENFILENAME構造体の初期化におかしなところはないように
思えて、原因がさっぱりわかりません。
上のコードではBMPを指定していますが、これは例なのでなんでもかまいません。
他の形式にしても結果は同じでした。
どなたか原因をご存知でしたらご教授ください。
よろしくお願いします。

264 名前:263 :04/05/18 01:30
すみません、上の質問ですが
nMaxFileをMAX_PATHにしたら
普通にダイアログがでてきました。
恥ずかしい・・・

265 名前:263 :04/05/18 01:35
filenameを初期化しておいたら
MAX_PATHでなくても動きました。
原因が理解できました。
馬鹿な質問で汚してすみませんでした。

266 名前:デフォルトの名無しさん :04/05/18 21:57
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));

これって

OPENFILENAME ofn = {0};

これでもいいんだよね?処理系依存でしたっけ?

267 名前:489 :04/05/18 22:48
1^2+2^2+3^2+・・・+n^2を計算するのを作りたいんですが

#include <stdio.h>

int main(void)
{
int a,b;

printf("整数を入力してください。>>>");
scanf("%d",&a);

while(a>0)
{
b=a*a;
a=a-1;

}

printf("答え%d\n",b);

return 0;
}

答えが全て1になります。どこがへんでしょうか?

268 名前:デフォルトの名無しさん :04/05/18 22:51
while(a>0)
{
b=a*a;
a=a-1;

}

の部分がたぶんおかしい

269 名前:デフォルトの名無しさん :04/05/18 22:52
b+=a*a;

270 名前:正解 :04/05/18 22:58
int main(void){
int a,b=0;

printf("整数を入力してください。>>>");
scanf("%d",&a);

while(a>0)
{
b +=a*a;
a=a-1;
}

printf("答え%d\n",b);

return 0;
}

271 名前:267 :04/05/18 23:00
解決しました。ありがとうございます。

272 名前:デフォルトの名無しさん :04/05/18 23:23
>>266
それでいいよ

273 名前:デフォルトの名無しさん :04/05/19 04:17
プロファイラを使いたいんですが、
ビルド>プロファイルをクリックして、プロファイルのタイプを選ぶダイアログを出す所まではできるんですけど、
そのあと、例えば "関数のタイミング" にチェックをいれてOKボタンを押しても、何も起きません。
どうしたらプロファイラが使えるのか、教えて下さい。
Visual C++のヴァージョンは、Standard Edition 6.0です

274 名前:デフォルトの名無しさん :04/05/19 05:35
/profile

275 名前:273 :04/05/19 07:01
すいません、Standard Editionにはプロファイル機能はついてないようです・・・

276 名前:デフォルトの名無しさん :04/05/19 20:48
すみません、技術評論社・「はじめてのC++」というのを購入したのですが、
HelloWorldのコードに
#include <iostream.h>
cout〜
というのがあり、前スレにありましたがVS.net2003にはiostream.hが存在しないようで、以降の内容に取り組めません

選ぶ本を間違えますか?

277 名前:デフォルトの名無しさん :04/05/19 21:54
#include <iostream>

そして std::cout とかするか、
using namespace std;
とか、書いておきましょう。

278 名前:デフォルトの名無しさん :04/05/19 21:57
SetPixelVとSetPixel
って何が違うの?

279 名前:デフォルトの名無しさん :04/05/19 22:07
実際に塗りつぶされた点のカラー値を返さないので、SetPixelV 関数は SetPixel 関数より高速に動作します。

280 名前:デフォルトの名無しさん :04/05/19 22:13
>>279
なるほど。
thx!

281 名前:デフォルトの名無しさん :04/05/19 22:17
>>276
はっきり言って、選ぶ本を間違えてます。
#include <iostream.h> などという「古い」ことが書いてある本は捨て。
たしかにそれでもC++が学べないわけではないが、規格が固まる以前の仕様で書かれた本じゃ、学習の妨げになる。


282 名前:276 :04/05/19 22:20
>>277
即レスありがとうございます。
#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!\n";
return 0;
}
で無事解決しました。using namespaceが最初の行だと駄目なんですね。
std::coutのほうはめぼしいところに入れてもエラーが出てしまいました。
C#だとusing System の Console.WriteLine("Hello World!")だけでいいのにC++は難しいですね。
意味がまだわかりませんが精進します。ありがとうございました。

283 名前:276 :04/05/19 22:26
>>281
そうですか・・・orz
C#をちょっと知ってるだけなのでそんな規格の変化があるとは思いもよりませんでした
VS.net(できれば2003)準拠の本を探しに行ってきます

284 名前:デフォルトの名無しさん :04/05/19 22:39
コンボボックスにディレクトリを表示したいのですが、WinXPではCドライブ以外のドラ
イブも表示されるのにWin2000では表示されません。
解決方法をお願いいたします。

コードは以下の通りです。

//CCombo m_dirCombo;

m_dirCombo.ResetContent();
m_dirCombo.Dir(DDL_EXCLUSIVE | DDL_DRIVES | DDL_DIRECTORY, _T("*.*"));

285 名前:デフォルトの名無しさん :04/05/19 23:22
>>283
塚越氏の本は読み進めて理解していくのに分かりやすいし学習用には良いと思うけどね
オレは・・・

286 名前:デフォルトの名無しさん :04/05/19 23:57
以下の場合で MyClass Add(MyClass ob)がdataを用いることができる理由がよくわかりません。この理由を教えていただけないでしょうか。
gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)です。

#include <iostream>

class MyClass {
int data;
public:
MyClass(int d) { data = d; }
MyClass Add(MyClass ob);
void Display() { std::cout << "data : " << data << std::endl; }
};

MyClass MyClass::Add(MyClass ob)
{
data += ob.data;
return *this;
}

int main()
{
MyClass Obj1(10), Obj2(15);

Obj1.Add(Obj2);

Obj1.Display();

return 0;
}


287 名前:デフォルトの名無しさん :04/05/20 01:24
>>286
スレ違いだとは思わんもんかなぁ。

それはさておき、あんたは先ず、classとは何か10分くらい勉強してきなさい。

288 名前:デフォルトの名無しさん :04/05/20 02:37
>>287
10分どころか1時間以上経ってるね。

289 名前:286 :04/05/20 02:59
>>287
見知らぬ人にあんたなんて言うんですか?
随分と失礼ですね。


290 名前:286 :04/05/20 03:17
>>287
あなたにあれこれ指図される気はありません。
>>289
あなた誰ですか?勝手に名乗らないでください。

291 名前:デフォルトの名無しさん :04/05/20 12:37
>>290
スレ違いに付き以後放置決定。

292 名前:デフォルトの名無しさん :04/05/20 13:31
>>286
AddとdataがMyClassのメンバだから。
聞きたいことは大体分かるが、これで納得できないなら>>287

293 名前:デフォルトの名無しさん :04/05/20 14:10
質問です。例えば10mSのウエイトを正確に入れたい場合、
Sleep関数だと話になりませんでした。
その他のプログラムは停止でもなんでも無視してもいいから、
正確にmsまでのウエイト処理ができるようなプログラムを
作成されている方はいらっしゃいますでしょうか?

294 名前:デフォルトの名無しさん :04/05/20 14:16
>>293
スレッド優先順位を最高位にしてパフォーマンスカウンタかな?
可変クロックだとダメらしいが。

295 名前:デフォルトの名無しさん :04/05/20 16:16
>>293
timeGetTime()なら若干マシじゃないかね

296 名前:デフォルトの名無しさん :04/05/20 17:27
ビジュアル的な質問になるのですが
方法をご存知のかた教えて頂きたいとおもいます。
MFCのEXEにてCFrameWndビューが表示されるツールを作成しています。
もともとビューのリソースを持っているのではなく
コードによりWNCLASSを使用し、画面を構築しています。
このビューを灰色に設定しダイアログっぽくデザインしており
画面の構築時にビットマップ等の画像ファイルを埋め込みたいとおもいます。
イメージで言うとエラーメッセージ等の警告、注意、のマークみたいな物
となります。
この場合、どのような方法で画像を埋め込むのか分からず、思案しております。
サンプル等貼ってある場所があれば誘導等もお願いいたします。

297 名前:デフォルトの名無しさん :04/05/20 21:43
ユーザにどのような操作をさせたいのよ
方法とかタイミングによるべさ

298 名前:デフォルトの名無しさん :04/05/20 22:50
VS.NET2003で、C++のプログラミングをしているのですが、timeGetTimeを使うと、
>error LNK2019: 未解決の外部シンボル __imp__timeGetTime@0 が関数 _main で参照されました。
>fatal error LNK1120: 外部参照 1 が未解決です。
というエラーが出ます。

全く同じソースが、BCC5.5では正常にコンパイルできるので、ソースに問題があるとは思いにくく、
環境自体がおかしいのかと思い、VSの再インストールもしましたが、改善しません。

何か他に考えられる可能性はあるでしょうか…

299 名前:デフォルトの名無しさん :04/05/20 23:00
>>298
winmm.libをリンクしてないから。

#pragma comment(lib, "winmm.lib")

をソースに追加するか、プロジェクトの設定でwinmm.libをリンクするようにする。

300 名前:298 :04/05/20 23:28
>>299
うまくコンパイルできました。
どうもありがとうございました。

301 名前:デフォルトの名無しさん :04/05/21 16:51
友人が作ったVisual C++6.0のソースなんですが、
コンパイルエラーがなく、実行時にsetTimerがうまく呼ばれてないようで、
呼出し後の処理がうまくいきません。
具体的には、パズルゲームです。一秒ごとにブロックが落ちるはずなのですが、
ブロックが、落ちずにキーボードから操作するしかないという状態です。
なにとぞ、よい知恵をお貸しください。

ttp://www.geocities.jp/whaleaquarium/

302 名前:デフォルトの名無しさん :04/05/21 16:59
OnTimerでもSetTimer

303 名前:301 :04/05/21 18:39
重ね重ね、申し訳ありません。
>>302
OnTimerでもSetTimerとはどういう事か分からないのですが。
OnTimer関数内でSetTimerを呼ぶという事でしょうか?
一応やってみましたが、特に変化がありませんでした。
引数が問題なのでしょうか、
自分の解釈が間違ってるかも知れませんが、
よろしければ、詳しく教えて下さい。よろしくお願いします。

304 名前:デフォルトの名無しさん :04/05/21 19:12
バッファの量が増えると縦スクロールバーが勝手に表示されてしまうのですが
これを強制的に表示させないようにする方法を教えてください

305 名前:デフォルトの名無しさん :04/05/21 19:20
バッファって何?
何のスクロールバー?

306 名前:デフォルトの名無しさん :04/05/21 19:24
>>305
フレームビューです。
文字がビューに収まりきらなくなった時勝手にスクロールバーが
表示されて困ってます

307 名前:デフォルトの名無しさん :04/05/21 19:48
フレームビューって何語?
フレームビューは文字を格納するものなの?

MFCを使っているならそう言え。
フレームビューとやらは自分で定義したクラスか?


308 名前:デフォルトの名無しさん :04/05/21 19:53
もうしやけございません
フレームビューという表現は誤りでしたか。。。
これをサンプルに作っております

ttp://www.sm.rim.or.jp/~shishido/api1.html

309 名前:デフォルトの名無しさん :04/05/21 20:04
で、バッファとゆーものは何処に?

310 名前:デフォルトの名無しさん :04/05/21 20:12
バッファーは表示させる文字の事を指していました
表現が間違っていたらすみませんでした。
要は文字列がダラーっと縦に続いていった場合 意図しないのに
スクロールバー様が表示されるのです。お呼びでない為
スクロール婆さんにはスッコンでいてもらいたいのです。

311 名前:デフォルトの名無しさん :04/05/21 20:16
308のページではエディットコントロールも使ってないようだし、
どのような手段を使って文字列を表示しているんだ?
ただTextOutを使って表示させるだけなら、スクロールバーが出たりしないし。

312 名前:デフォルトの名無しさん :04/05/21 20:25
メッセージマップ?というやつを使って
一回一回描画しています。

313 名前:デフォルトの名無しさん :04/05/21 20:29
えーと、、、もう良いや。
誰か他の人お願い。

314 名前:デフォルトの名無しさん :04/05/21 20:31
何分初心者なもので 分かり辛い状況説明で申し訳ありません

315 名前:デフォルトの名無しさん :04/05/21 20:35
とりあえずソースを上げろ、話はそれからだ。

316 名前:デフォルトの名無しさん :04/05/21 20:38
MSDNで文字列→数値の変換に関して検索を掛けたら
_strtoi64 が出てきましたこれは一般的なのでしょうか?
textBox.text プロパティから数値を取り出そうとしています。

また最後の3つ目の引数は基数となってますが、
10進として変換したい場合は10とすればいいのでしょうか?

317 名前:デフォルトの名無しさん :04/05/21 20:51
スクロールバー表示されなくなりますた
ありがとうございますた。
SetScrollRange君と
SetScrollPos君が悪さしていたようです

318 名前:デフォルトの名無しさん :04/05/21 20:52
atoi
で良いんじゃない?

319 名前:デフォルトの名無しさん :04/05/21 20:52
>>318>>316 へのレスね。

320 名前:デフォルトの名無しさん :04/05/21 20:55
>>318
atoi と strtoi64 は精度が違うとかそういう違いだけですか?
int に変換したいのですが扱うのは整数のみ、桁数は大き目
ネットで調べると covert だの CString だの出てきますが、
やはりatoiが一番最良で軽いのですか?

321 名前:デフォルトの名無しさん :04/05/21 20:58
320ですが、CじゃなくてC++らしい書き方もしたいのでそこらへんもお願いします
VC++じゃなくてC++質問で申し訳ないです

322 名前:デフォルトの名無しさん :04/05/21 21:20
>>320
a_to_系
str_to系
では書式が少し違う。
得られる数値の型が複数用意されているのでそこらへんは"u"なり"i"なり
そのコードに必要な値の範囲をカバーしているものを使う。使い分けってのは
必要な型のサポートで考えれば良いのでは?

323 名前:デフォルトの名無しさん :04/05/21 21:33
>>321
int i;
std::stringstream ss;
ss << "321";
ss >> i;

324 名前:デフォルトの名無しさん :04/05/21 22:41
>>320
boost使っても良いなら、

int i = boost::lexical_cast<int>( "321" );

lexical_cast内部で>>323の処理を行っている。

325 名前:デフォルトの名無しさん :04/05/22 13:39
「winuser.h」がインクルードされてるのに、
COMBOBOXINFO構造体を使用しようとすると、
「: error C2065: 'COMBOBOXINFO' : 定義されていない識別子です。」
というコンパイル エラーになってしまいます。

原因が分からないのでご教授願います。

326 名前:デフォルトの名無しさん :04/05/22 16:46
>>325

ttp://msdn.microsoft.com/library/en-us/winprog/winprog/using_the_windows_headers.asp


327 名前:デフォルトの名無しさん :04/05/22 23:08
以下のようになるんですがこういうもんですか?
コンパイルオプションなんかで解決できますか?

std::vector<type_t*> tvec(100);

(case A)
type_t*& ptr(tvec[0]); // 駄目

(case B)
typedef type_t* tp;
tp& ptr(tvec[0]); // OK


328 名前:327 :04/05/22 23:09
↑はVC.NETでの話でした。

329 名前:デフォルトの名無しさん :04/05/23 02:47
↑プログラム歴何年目ですか?

330 名前:デフォルトの名無しさん :04/05/23 13:41
>>327
type_t*& p = tvec[0];

331 名前:デフォルトの名無しさん :04/05/23 21:25
すみませんが
ms-help://MS.VSCC/MS.MSDNVS.1041/vcmxspec/html/vcmg_MacrosandthePreprocessor.htm
と、いうHELPがあるそうなんですが見つけられません
名称が変わったのでしょうか?
どなたかご存知の方折られませんか?
どうやら
wingdi.hに定義されているGetObjectと
System::Resources::ResourceManagerのGetObject
が、重なってしまいます。
の解決方法が書いてあるようなんですが



332 名前:デフォルトの名無しさん :04/05/23 21:51
コンボボックスをオーナー描画スタイルにすると、コンボボックス内の
全てのアイテムのテキストが文字化け(?)してしまいます。
どうすれば良いでしょうか?

333 名前:デフォルトの名無しさん :04/05/23 22:04
化けないように描画してください。

334 名前:332 :04/05/23 22:42
>>333
描画段階ではなく取得したら化けてたんです。TRACEで確認しました。
文字が全て全角一文字の記号文字になってしまいます。

335 名前:332 :04/05/23 22:46
すみません。半角文字です。

336 名前:デフォルトの名無しさん :04/05/24 00:14
あれか、フフフフフだな。
CBS_HASSTRINGS付けてみい

337 名前:デフォルトの名無しさん :04/05/24 00:22
VC++.netで
struct Object{
int a;
};

struct *p;
p = malloc(sizeof(struct Object)) == NULL

ビルドエラーになるんですが何が問題でしょうか?

338 名前:デフォルトの名無しさん :04/05/24 00:28
;

339 名前:デフォルトの名無しさん :04/05/24 00:30
型キャストしたら直りますた

340 名前:332 :04/05/24 01:18
>>336
ありがとうございました!!

341 名前:デフォルトの名無しさん :04/05/24 09:45
>>339
(・∀・)ニヤニヤ

342 名前:デフォルトの名無しさん :04/05/24 10:01
VC++で Excelのシートをコピーしたいと思っています。
例えば、「book1.xls」の「先頭のシート」を、「book2.xls」の「先頭のシート」の前にコピーするという操作です。

1:using namespace Excel;
2:_ApplicationPtr pXL;
3:COleVariant data;
4:
5: //Excelの起動
6:pXL.CreateInstance(L"Excel.Application");
7:pXL->Visible = TRUE;
8:
9://WorkBookを開く
10:WorkbooksPtr pBooks = pXL->Workbooks;
11:_WorkbookPtr pBook1 = pBooks->Open("C:\\book1.xls");// book1.xls を開く
12:_WorkbookPtr pBook2 = pBooks->Open("C:\\book2.xls");// book2.xls を開く
13:
14://アクティブ・シートの変更
15:data = (short)1;// book1.xlsの先頭のシートを指定
16:SheetsPtr pSheets = pBook1->Worksheets->Item[data];
17:pSheets->Select(data);
18:
19:VARIANT vx;
20:VariantInit (&vx);
21:vx.vt = pBook2->Worksheets->Item[(short)1];// book2.xlsの先頭のシートを指定 **ここが怪しい**
22:
23:pSheets->Copy(vx);// **ここで abnormal program termination エラー発生**
24:
25:pXL->DisplayAlerts = FALSE;
26:pXL->Quit();


343 名前:342 :04/05/24 10:02
上記のソースでは、23行目でエラーになってしまいました。
Copyメソッドの引数がおかしいのだと思いますが、よくわからず行き詰まっております。
シートを開いたりするところまでは正常に動作しております。
良い方法や、参考になるサイト等ありましたらご教授いただけると幸いです。
環境は、Win98SE, VC++6.0 Enterprise Edition, MS Excel97 です。

344 名前:デフォルトの名無しさん :04/05/24 10:40
教えてください。MFCで作成しています。
InitInstance内でCFrameWndを構築するコード

hInst = m_hInstance;
m_pMainWnd = new CTestView();
pTestwin = m_pMainWnd

を書いているのですが この部分を同一CPPファイルの外部関数(EXPORT)宣言内に移行して使えるようにしたと
思います。
動作としては外部関数が呼ばれた時に画面の構築を行いたいのです。

外部関数内にそのままコードを移行するとビルド時に
error C2065: 'm_hInstance' : 定義されていない識別子です。
error C2440: '=' : 'int' から 'struct HINSTANCE__ *' に変換することはできません。(新しい動作 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
error C2065: 'm_pMainWnd' : 定義されていない識別子です。
error C2440: '=' : 'class CFuruView *' から 'int' に変換することはできません。(新しい動作 ; ヘルプを参照)
この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2440: '=' : 'int' から 'void *' に変換することはできません。(新しい動作 ; ヘルプを参照)
が発生してしまいました。このように初期描画構築コードを外部関数に移行する場合の
要領を教えていただけないでしょうか?よろしくお願いします。
開発環境はnt4.0でvcは5を使用しています。

345 名前:デフォルトの名無しさん :04/05/24 11:27
>Copyメソッドの引数がおかしいのだと思いますが
デバッグでCopy関数の中へステップインしてみる。
Copyのソースコードが現れるので一行ずつ実行すれば
エラーのある箇所で止るだろうから、その時のソースコードに
注目する。これで原因が特定出来るはず。

346 名前:デフォルトの名無しさん :04/05/24 11:42
>>344
m_hInstanceはCWinAppのメンバなんだから、そりゃ外部関数とやらがCWinAppとなんお関係もなけりゃ触れない。
CWinAppから派生したクラスにフレームウィンドウ構築の関数追加してそれを外部関数から呼んでやればいいんじゃない?
m_hInstanceとかってpublicだから直接操作できるけど

347 名前:344 :04/05/24 11:57
>>346
分かりやすい回答ありがとうございます。

教えて頂いた通り構築用の関数を追加してみました。
メンバ関数の追加によりPublicで宣言した関数内で上記のコードを
持っていくと 定義されていない識別子です。等のエラーは発生しなくなりました。

初歩的な質問で申し訳ございませんが、この関数EXPORTで宣言した関数内からコール
する時 (例えば関数名 void OpenWndProcとした時)

EXPORT short int __stdcall loadView(long openflg)
{

OpenWndProc();
}

という具合にコードを書くとOpenWndProc 定義されていない識別子
となってしまいました。
Publicで宣言した場合 同一CPP内からの呼出しはどのようにすればよろしいでしょうか?
よろしくお願いいたします。


348 名前:デフォルトの名無しさん :04/05/24 13:41
IShellFolderでフォルダ操作をするとき、
SHCONTF_FOLDERSを使うとIEが列挙されて邪魔なんですが
IEだけ正しく除外する方法って何かありませんか?
::{871C5380-42A0-1069-A2EA-08002B30309D}
これを認識する方法はスマートじゃない気がするんですが。

349 名前:デフォルトの名無しさん :04/05/24 15:49
View.cppで保持している文字列データをDoc.cppで読み込み保存するには
どのようにすればいいのでしょうか?
ViewとDocがどのような関係にあるのかまだ理解できず、うまくデータの受け渡しができません。
WC++ net2002を使用しています。よろしくお願いします。

350 名前:デフォルトの名無しさん :04/05/24 15:50
>>349


WC -> VCです^^;

351 名前:デフォルトの名無しさん :04/05/24 16:16
>>349
俺のvctips.txtより

.MFCクラス間のアクセス方法
Doc → View GetFirstViewPosition, GetNextView
View → Doc GetDocument
View → FrameWnd GetParentFrame
FrameWnd → View GetActiveView
FrameWnd → Doc GetActiveDocument

352 名前:349 :04/05/24 16:37
>>351

View → Doc GetDocument
を利用して何とかデータを受け渡せそうです。
ありがとうございました。

353 名前:327 :04/05/24 17:12
>>329
10年くらいです(ずっとgccです)。

>>330
すみません。それで通るのは判っていたんですが、
327で書いた方法で一貫して書いてきたので変えたくなかったのです。
VCでは駄目ぽということで勝手に納得しておきます。

354 名前:デフォルトの名無しさん :04/05/24 17:44
Delphi->BCB->VC++と移行してきました。
C++自体はそれなりにわかりますが、
プロジェクト作成からある程度のものを作るまでの流れみたいなものがいまいちわかりません。
初心者向けの参考書みたいなものがあれば教えていただきたいです。

355 名前:342 :04/05/24 18:53
>>345
ご教授ありがとうございます。
下記関数までステップインしたところで、それ以上ステップインできなくなってしまいました。

inline HRESULT Excel::_Worksheet::Copy ( const _variant_t & Before, const _variant_t & After ) {
return _com_dispatch_method(this, 0x227, DISPATCH_METHOD, VT_EMPTY, NULL,
L"\x080c\x080c", &Before, &After);
}

多分、私がVARIANT型への代入方法を間違えているのが原因だと思うのですが、やはりまだよくわかりません。
このCopy関数を使用したサンプルコードでもあると良いのですが、見つけられませんでした。
引き続き調べてみたいと思います。
また、どなたか情報ございましたら宜しくお願い致します。


356 名前:デフォルトの名無しさん :04/05/24 19:12
VC++で印刷のプレビュー機能がありますが、このプレビューのデータを
別口で取り出し、ピクチャーBOXなどに貼り付けることは可能でしょうか?
つまり、印刷のプレビュー画面を標準以外にしたいのが目的なのですが…


357 名前:デフォルトの名無しさん :04/05/24 23:23
プリンタのDCを他のDCへBitBltしてあげればいけるんじゃない?

358 名前:デフォルトの名無しさん :04/05/25 08:44
>>348
CLSID_Internet


359 名前:デフォルトの名無しさん :04/05/25 08:49
>>355
引数がふたつに見えるんだが・・・


360 名前:デフォルトの名無しさん :04/05/25 12:09
相手の顔がふたつに見える

361 名前:デフォルトの名無しさん :04/05/25 18:35
当方windowsXP使用の初心者で、手始めにborlandC++Compilerを使っておりました。
配布サイトの説明どおり進めていき、一応ちゃんと動作する物を作ることができました。

今度Visual C++を始めたのですが、こちらはインターフェースがややこしくて何がなにやらといった感じです。
参考書も見たのですが、のっけから専門用語連発でいまいちわかりません。
そこでとりあえず、簡単な

#include <stdio.h>

int main()

{

printf("hello\n");

return 0;

}

という内容の.cppファイルがあったとして、これをVisual C++でコンパイルして動かすには
どのような流れで進めていけばよいのでしょうか?


362 名前:デフォルトの名無しさん :04/05/25 20:13
いつも思うんだけど>>361みたいな初歩の初歩から質問する人って
全部2chで習うつもりなんだろうか。


363 名前:361 :04/05/25 20:53
>>362
全部じゃないです。1から10まで教えてくれなんていいません。1だけでいいんです。
とりあえず初めの取っ掛かりがわからないことには何もできないじゃないですか。
最も基本的な流れがひとつわかれば、後はそれにいろいろ付随する形で学んでいけると思うんです。
現に、先に述べたborlandC++Compilerの場合はそれができたんです。
だから一番初めの段階をひとつ教えてください。後は自分でやります。よろしくお願いします。


364 名前:デフォルトの名無しさん :04/05/25 20:58
>>363
VCバージョン書け
5、6系と.net以上とでかなり違う

5、6ならファイルをVCで開いてビルドボタンを押すだけ
ただしCソースならファイル拡張子は.cの方が良い

365 名前:363 :04/05/25 21:15
netです。

366 名前:356 :04/05/25 21:42
>>357
BitBltですがオンラインマニュアルによると
出力先がプリンタ以外はエラーになる
との記述があるのですが…

質問の追加です
ComboBoxでItemの選択をしたときに
SelectedIndexChangedのなかで
ComboBox->SelectedText
とやれば、選択したテキストが得られると思い込んでいたのですが違うのでしょうか?
やってみたのですが、かえってきません(空でした)
DropDownStyleはComboBoxStyle.DropDownになっていたのでてっきりテキストが
帰ってきているのだと思い込んでいたのですが…


367 名前:デフォルトの名無しさん :04/05/26 00:09
横ヤリすまんそ。
VCでVSS管理下とかで読み取り専用になっているファイル
をエディタ画面で編集できてしまう(もちろん保存はできないが)
のですが、VBみたいにBEEP音がなって編集させてくれない
ほうが気持ちいいと思うのですがみなさんどうしてますか?
(ツール/オプション/エディタの中にもそれらしき設定がないのですが。。。)

368 名前:デフォルトの名無しさん :04/05/26 01:10
>>367
VSSの運用戦略を根底から見直す。

369 名前:デフォルトの名無しさん :04/05/26 01:27
hyper i=123456789080;
hyper j=123456789090;
int k=i+j;
とするとk=0になってしまいます。
環境はVC++6.0です。なぜなんでしょう?

370 名前:デフォルトの名無しさん :04/05/26 01:50
>>363
ヘルプで
.NET開発 -> .NET開発 -> Visual Studio .NET -> Visual C++

もしくは
http://www.google.com/search?num=50&lr=lang_ja&q=VC%2B%2B+%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB

371 名前:デフォルトの名無しさん :04/05/26 01:57
>>366
こっち方がいいかもね。

managed C++ やろうぜ!!
http://pc5.2ch.net/test/read.cgi/tech/1014486422/l50

372 名前:デフォルトの名無しさん :04/05/26 06:17
VCのリファレンスが英語で表示されるのですが、日本語表示はないのでしょうか。
がんばって英語を覚えろということでしょうか。とほほ。

373 名前:デフォルトの名無しさん :04/05/26 07:52
>>372
違います、覚えなくても読まなければ問題ありません。

374 名前:デフォルトの名無しさん :04/05/26 08:06
>>372
違います。覚えなくても慣れれば問題ありません。

375 名前:356 :04/05/26 10:33
ComboBoxでItemの選択の続き
SelectedIndexには想定した値が入っているんですが…
どうしてTextには入っていないんでしょうか?


376 名前:デフォルトの名無しさん :04/05/26 12:31
>>375

CString ss;
xx.GetWindowText(ss);

377 名前:デフォルトの名無しさん :04/05/26 12:38
>>369
intをhyperにしろ

378 名前:Hack'n :04/05/26 13:52
VC++ 6.0 で Win API を使ったアプリケーションを作っています。
細かいことですが、default のまんま使っているせいか、各SECT って、
0x1000 単位で構成されています。
よそさまのを覗くと、0x800 のもあるようです。
なにがよくて、0x1000 になっているのか、またこれを 0x800 に設定
するのは、どこかで出来るのでしょうか。


379 名前:デフォルトの名無しさん :04/05/26 14:49
SECTって何?

380 名前:デフォルトの名無しさん :04/05/26 15:25
Toolbarで使用するアイコンパレットを16色から256色にするにはどうすればいいのでしょうか?
256アイコンペーストすると16色のパレットに減色されてしまう…
環境はVS.Net2002、よろしくお願いします

381 名前:デフォルトの名無しさん :04/05/26 15:30
三角関数ってコンピューターの中でどうやって計算してるんだ?

382 名前:デフォルトの名無しさん :04/05/26 15:39
>>381
; 6 : double a, b, c;
; 7 :
; 8 : c = a + b;

0001ddd 45 f8 fld QWORD PTR _a$[ebp]
00020dc 45 f0 fadd QWORD PTR _b$[ebp]
00023dd 5d e8 fstp QWORD PTR _c$[ebp]

; 9 : c = a - b;

00026dd 45 f8 fld QWORD PTR _a$[ebp]
00029dc 65 f0 fsub QWORD PTR _b$[ebp]
0002cdd 5d e8 fstp QWORD PTR _c$[ebp]

; 10 : c = a * b;

0002fdd 45 f8 fld QWORD PTR _a$[ebp]
00032dc 4d f0 fmul QWORD PTR _b$[ebp]
00035dd 5d e8 fstp QWORD PTR _c$[ebp]

; 11 : c = a / b;

00038dd 45 f8 fld QWORD PTR _a$[ebp]
0003bdc 75 f0 fdiv QWORD PTR _b$[ebp]
0003edd 5d e8 fstp QWORD PTR _c$[ebp]

383 名前:342 :04/05/26 17:02
>>359
ご指摘ありがとうございます。
確かに引数は2つなのですが、VBの類似関数から、2つ目を省略しても動作的には問題ないと思ったため省略しておりました。
・1つ目の引数(&Before)=指定したシートの「前」に挿入するとき
・2つ目の引数(&After)=指定したシートの「後」に挿入するとき

あれからソースを見直して、17行目をコメントアウトしたところ、エラーは発生しなくなりました。
(エラー発生個所を間違っておりました。申し訳ありません)
また、2つ目の引数も一応指定するようにしました。

23:pSheets->Copy(vx,vtMissing);

シートはコピーされたのですが、こちらの指定した「book2.xls」にではなく、新しいブックが開かれて、
そこにコピーされてしまいました。
トレース中の変数を見ると、

&Before 0x0064f578 {VT_NULL}
&After 0x00419ac8 class _variant_t vtMissing

となっており、&Beforeに代入されているはずのシートポインタ(pBook2->Worksheets->Item[(short)1])が
無視されて VT_NULL になってしまっているように見えます。
今はここでつまづいております。

384 名前:デフォルトの名無しさん :04/05/26 18:19
>>381
「マクローリン展開」でぐぐってみるといいかもしれない。

385 名前:デフォルトの名無しさん :04/05/26 18:30
すいませんちょっとばかし高度な質問してもよろしいでしょうか


386 名前:デフォルトの名無しさん :04/05/26 19:08
どうぞ

387 名前:デフォルトの名無しさん :04/05/26 19:12
質問の仕方が馬鹿っぽいからダメ。

388 名前:385 :04/05/26 20:28
CinternetSessionを使用しておりまして
OPEN/VMSサーバに接続後CFtpFileFindにて
存在するファイルを次々に取得するコードを作成しているのですが
カレントにDIRが移るとこまでは上手く処理ができておりまして
肝心のGetFilePathのステートメントで致命的エラーが発生しました。
デバッグにより原因を探っているとどうも、FileFind.Cppで
DIRの区切り記号であるスラッシュが付与される事がわかりました。
VAX上では DISK$TEST:[TEST.TOOL]aaa.txt と扱うファイル及びディレクトリが
このステートメントではFile://133.133.133.133/Test/Tool/aaaa.txt
という認識になりVAX上でファイルが見つかってもDISK$TEST:[TEST.TOOL]/
という処理をしてしまい不具合が発生しているようなのです。
マニアックな相談で申し訳ないですが、この高度な問題を解決していただければ
すごく感謝の気持ちでイッパイになる事が可能となります。
よろしくお願いしてみてるのでお願いしますですよ

389 名前:デフォルトの名無しさん :04/05/26 20:39
DirectXとかOpenGLとか使わずにサイコロ(回転できる立方体)を作りたいのですが、
どういう風に考えれば良いのか分かりません。
考え方でも解説サイトでもなんでも良いので教えてください。

390 名前:デフォルトの名無しさん :04/05/26 20:44
どこかにポリゴンの説明してるサイトがあったな、ぐぐってみ?

391 名前:デフォルトの名無しさん :04/05/26 21:58
>>389
ワイヤーフレームまでなら
http://www.vector.co.jp/soft/data/prog/se002453.html

392 名前:389 :04/05/26 22:53
>>390-391
レスありがとうございます。
三角形を組み合わせるみたいな事がMSDNに書いてあったのですが、
いかんせんどうやって書いたらいいか分からないです。
>>391のデータはまだ途中までしか眼を通してないのですが、これはコンソールでしょうか?
できればWINDOWS APIを使ってやりたいんですが…
説明不足でした。すいません。

393 名前:芹川璃羽 :04/05/26 23:44
>>388
読んでて、なんとなく腹立ったのはわたしだけ?

394 名前:デフォルトの名無しさん :04/05/26 23:50
読みもしなかたーよ

395 名前:385 :04/05/27 09:26
やっぱVAXなんて古い環境からむと解決する術ってないものですな
これってFileFind.Cppのコードを強制的に変えるしか方法ないですかな

>>393
まったり仲良くいきましょう

396 名前:デフォルトの名無しさん :04/05/27 10:20
DWORD の意味がわからずヘルプを参照したのですが

[[name]] DWORD initializer [[, initializer]]...
各 initializer にダブルワード (4 バイト) の格納領域を割り当て、必要に応じて初期化します。型が適切な場合は、型指定子として使用することもできます。

意味がぜんぜんわかりません…
一体どう解釈すればいいのでしょうか?
DWORDの前にある name はまた何を意味するのでしょうか?


397 名前:デフォルトの名無しさん :04/05/27 10:35
DWORD 32 ビットの符号なし整数、またはセグメント アドレスとそれに関連するオフセット。

398 名前:デフォルトの名無しさん :04/05/27 10:35
>>396
見るとこ間違ってんじゃね?
VBかなんかの説明っぽいが。


399 名前:デフォルトの名無しさん :04/05/27 10:39
あ、汗の説明か(;´Д`)

400 名前:396 :04/05/27 10:44
>>397

ありがとうございます

>>398

VisualC++でフィルタされてるのですが
Microsoft Macro Assembler リファレンス
という項目は関係なかったんでしょうか?^^;

調べていたら英語記述のデータタイプ一覧を見つけました。
DWORD 32-bit unsigned integer.
というところを見ればよっかったのかな?
できればここも日本語化していてくれればいいのに…

401 名前:デフォルトの名無しさん :04/05/27 11:37
>>400
それよりもDWORDの元は何なのかヘッダ見たほうが早いと思うんだけど。

402 名前:396 :04/05/27 12:30
>>401

ようやく理解できました
typedef unsigned long DWORD
と定義されたものだったんですね
ありがとうございました

403 名前:デフォルトの名無しさん :04/05/27 12:39
>>402
すべて大文字の名前はとりあえずマクロだと思え。


404 名前:デフォルトの名無しさん :04/05/27 12:43
京都の大文字焼きはマクロですか?

405 名前:デフォルトの名無しさん :04/05/27 12:51
うん・

406 名前:デフォルトの名無しさん :04/05/27 12:51
>>404
もういいからおまえは黙って仕事してろ

407 名前:デフォルトの名無しさん :04/05/27 12:55
VS.netをつかってます
CBitmapButtonを使いたいのですが、Bitmapが表示されません
OnInitDialogにそれを表示させるのを入れるようなのですが、その関数がありません。
関数の追加で行ったところ、動作しないようです、OnInitDialogを最初から作らせるにはどのようにしたらよろしいでしょうか

408 名前:VB厨 :04/05/27 14:36
すみません。ひょんな事からVCを触らないと行けなくなりました。
少し手助けをお願いできないでしょうか?
VB側のDeclareでVC作成DLLの関数を宣言しているのですが
その関数の引数にinteger型のフラグを追加し、同じように
VC側のEXPORTで定義された外部関数にもその値を渡さないといけなく
なりました。ポインタとかの概念が分からず苦労してるのですが
VBから参照のみの値 0 OR 1 の数値をVCに提供する場合
その引き渡される側の型はどのような宣言にすればいいでしょうか?
short int 等にすると5桁くらいの値(数値)になってしまいます
要はVCの外部関数側で呼び元からのパラメタを0か1で判断して
処理を分けたいと思います よろしくお願いします。

409 名前:VB厨 :04/05/27 14:43
予想するとこ
EXPORT BOOL __stdcall GaibuProc(long &Aflg)
でよろしいのでしょうか

410 名前:デフォルトの名無しさん :04/05/27 14:44
ピクチャコントロールIDをIDB_BITMAP1
コントロール変数をm_PIC3
として、リソース画像の緑の部分を透明にして描画したいのですがうまくいきません。

CClientDC myPictDC(&m_PIC3);
CDC workDC;
CBitmap myBMP;
myBMP.LoadBitmap(IDB_BITMAP1);
workDC.CreateCompatibleDC(&myPictDC);
workDC.SelectObject(&myBMP);
//myPictDC.BitBlt(0,0,442,65,&workDC,0,0,SRCCOPY);
myPictDC.TransparentBlt(0,0,442,65,&workDC,0,0,442,65,RGB(0,255,0));

BitBltで描画する分には問題ないのですが、
TransparentBltで描画しようとしても描画されず困っています。
何がいけないのでしょうか?


411 名前:デフォルトの名無しさん :04/05/27 14:45
>>410

リソース画像IDがIDB_BITMAP1 でした

412 名前:デフォルトの名無しさん :04/05/27 16:18
>>388
何処が高度な問題なんだよ。
POSIX ファイル名を解決出来ないのは OpenVMS サイドの問題だろ。
…つか、VMS 仕様でディレクトリ指定しようなんて莫迦な真似してないよな?

いずれにせよ、CInternetSession って辺りが既にスレ違いなんだが。

413 名前:デフォルトの名無しさん :04/05/27 17:12
>>412
> いずれにせよ、CInternetSession って辺りが既にスレ違いなんだが。

なんで?

414 名前:デフォルトの名無しさん :04/05/27 18:44
406は悔しいpu

415 名前:デフォルトの名無しさん :04/05/27 20:44
あるAPI関数を使っているのですが上手くいきません
GetLastErrorっていうものを使ってみたいのですが
方法がわからず苦労してます。
おしえてください。

416 名前:デフォルトの名無しさん :04/05/27 20:46
あるAPI関数を使っているのですが上手くいきません
GetLastErrorっていうものを使ってみたいのですが
方法がわからず苦労してます。
おしえてください。

417 名前:デフォルトの名無しさん :04/05/27 21:05
>>416
方法ったって
DWORD dwError = GetLastError();
だけなんだが、何がわからないの?

418 名前:415 :04/05/27 21:09
サーバエラーで2回書き込んでしまいましたすみません。
もし今のGetLastErrorが正しくエラーコードを取得してる場合
エラーコード12003
ってのが帰ってくるんですがこの正体をどのように調べればよろしいでしょうか?
対応表のようなものがあるんでしょうか?

419 名前:デフォルトの名無しさん :04/05/27 21:53
FormatMessage

ってのもあるけど、私は
VS付属ツールである Error Lookup というツールをお勧めしたい。

420 名前:388 :04/05/28 09:39
>>412
かなり高度だと勘違いしてますた。
というか上手くファイル情報取得できるようになったのですが
動きがおかしいので作成したコード見てほしいのですが
よろしければコードはりますのでオナガイします。
処理の内容は指定DIRのファイル及びDIR一括削除処理です。


421 名前:デフォルトの名無しさん :04/05/28 11:28
>>418
これでも使え
CString CMyFunc::GetErrorStr()
{
 LPVOID lpMsgBuf;
 FormatMessage(
  FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  NULL,
  GetLastError(),
  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  (LPTSTR) &lpMsgBuf,
  0,
  NULL);
 CString ErrMessage = (LPTSTR)lpMsgBuf;
 LocalFree(lpMsgBuf);
 return ErrMessage;
}

422 名前:404 :04/05/28 11:32
VC++ でエラーにならないけど、説明が見つからない。
DECLAREconfig..... ってのがあるソースにあったんだけど、
なんのことだが、教えて下さいませんか。

423 名前:デフォルトの名無しさん :04/05/28 12:27
>>412
> いずれにせよ、CInternetSession って辺りが既にスレ違いなんだが。

なんで?

424 名前:デフォルトの名無しさん :04/05/28 12:40
>>423
MFCスレに逝けってことでは?
http://pc5.2ch.net/test/read.cgi/tech/1074104008/

425 名前:デフォルトの名無しさん :04/05/28 12:56
スレ違いではないよ。

ただ、自分で「高度」だと思ってる質問を初心者スレでするのはスレ違いっつーか頭悪いのかなとは思う。

426 名前:388 :04/05/28 19:03

>>425
すいません反省します

427 名前:デフォルトの名無しさん :04/05/28 20:00
教えていただけないでしょうか?
同一CPP内の関数間でAPI等のクラスやオブジェクトのインスタンスを
引数、戻り値にして関数間で使いまわししたいのですが
可能でしょうか?
例えばCDaoRecodeset *mdbRecord = New CDaoRecordset(&mdb)
等で作成されたmdbRecord を関数間で受け渡ししたいです。

428 名前:デフォルトの名無しさん :04/05/28 20:21
>>427
Give it a try!

429 名前:>>427さん :04/05/28 20:38
直接引数宣言内で(CDaoRecodeset *mdbrc)
って書きましたらシンタックスエラーを起こしました
って怒られてます。

430 名前:デフォルトの名無しさん :04/05/28 21:14
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

431 名前:デフォルトの名無しさん :04/05/28 21:16
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

432 名前:デフォルトの名無しさん :04/05/28 21:17
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

433 名前:デフォルトの名無しさん :04/05/28 21:20
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

434 名前:デフォルトの名無しさん :04/05/28 21:36
スミマセン、スミマセン。
書き込めなかったと思ったら重複してました。
ホントスミマセンスミマセン(;´A`)

435 名前:デフォルトの名無しさん :04/05/28 21:36
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

436 名前:デフォルトの名無しさん :04/05/28 21:42
プログラミング経験0なんですが何も知らない初心者でも分かるVisual C++の教材をご存知ないでしょうか?
最近の書籍は乱立しててワケワカラン。

437 名前:デフォルトの名無しさん :04/05/28 21:56
何か、書き込み→反映まで時間がかかるようになってますね。

>>427
シンタックスエラー → 文法エラー。
該当部分のソース貼ってみれ。


438 名前:デフォルトの名無しさん :04/05/28 23:51
>>429
関数の引数宣言の前にCDaoRecodesetを宣言しる。

class CDaoRecodeset;

439 名前:デフォルトの名無しさん :04/05/29 02:25
VC++6.0
関数数が多くなりすぎて,クラスビューがえらいことになってしまってます.
namespace毎に整理されれば楽なんですが,どうやらそうはならないようで.
無理矢理にでもクラス化→さらにフォルダ作って整理
以外のいい方法はありませんか?

現在はグローバルで
class __SAMPLE{
public:
//namespace内部に相当
};
__SAMPLE SAMPLE;

とし,SAMPLE.func();といった感じで使っています.

440 名前:デフォルトの名無しさん :04/05/29 07:50
WindowsXP、VC++.netでバイオリズムのグラフを書いています。
とりあえず日数の計算のプログラムまではできたので、あとはそれを

Y=sin a(X+d)

という式にぶち込んでサインカーブを描けばよいのですが、いかんせん入門書にはグラフィックの表示には
簡単にしか触れてないし、ぐぐってもJAVAやLinuxのサイトばかりです。。
サインカーブのグラフを書くにはどうしたらよいのでしょうか?ご教授願います。


441 名前:デフォルトの名無しさん :04/05/29 07:53
>>440
ウインドウつくって、MoveTo(Ex) LineTo等を使う

442 名前:デフォルトの名無しさん :04/05/29 07:54
>>440
アスキーアート

443 名前:デフォルトの名無しさん :04/05/29 09:24
>>440
csvファイルを出力してExcelに画かせるとか。

444 名前:デフォルトの名無しさん :04/05/29 11:35
CEditViewに表示されている全ての文字列をバッファに格納するにはどのようにすればよろしいでしょうか?
環境はVC++Netです

445 名前:デフォルトの名無しさん :04/05/29 14:19
おしえてくだはい。
フォルダを一覧するビューを作っているのですが、ビューが表示
された時点でのフォルダは問題なく表示できています。
この状態で、たとえばエクスプローラを立ち上げてフォルダ作成や、
フォルダ削除などで変更したとき、それを自分のビューにも
反映させていのです。即座に。1病苦台。
エクスプローラから何かメッセージをトラップできればいいのか
なと思っていますが、具体的なメッセージがわかりません。
よろしくお願いします。

446 名前:445 :04/05/29 14:33
スレ違いスマソ。

447 名前:デフォルトの名無しさん :04/05/29 14:34
>>445
ttp://www.google.com/search?hl=ja&inlang=ja&ie=UTF-8&c2coff=1&q=%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80+%E7%9B%A3%E8%A6%96+MFC&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

448 名前:デフォルトの名無しさん :04/05/29 14:45
>>447
ありがとうございました。

449 名前:デフォルトの名無しさん :04/05/29 15:50
>>445
FindFirstChangeNotification()よりもReadDirectoryChangesW()のほうが詳しく取得できるけどね。
NT系限定だけど。

450 名前:デフォルトの名無しさん :04/05/30 09:55
すみません解析の仕方を教えてください。
VCでDLLを作成しているのですが、通常エラーが発生した場合は
赤バツマークのメッセージが出るのですが、処理の途中で何の音沙汰もなく
呼出し元アプリが閉じられてしまい。メッセージも何もでません。
こういう事象もあるのでしょうか?

451 名前:デフォルトの名無しさん :04/05/30 15:18
dllでプロセスを終了させたらそうなるな

452 名前:デフォルトの名無しさん :04/05/30 16:32
Visual C++ では interface というのは予約語なんでしょうか?
COM 関連のヘッダファイルを見ていると、 unknwn.h などに

typedef interface IUnknown IUnknown;

とか

interface IClassFactory
{
CONST_VTBL struct IClassFactoryVtbl *lpVtbl;
};

とかいう記述が出てくるのです。

453 名前:デフォルトの名無しさん :04/05/30 17:05
<objbase.h>
#define interface struct

454 名前:デフォルトの名無しさん :04/05/30 17:19
お願いします。
下のプログラムは画像を取得してそれをR成分だけににするプログラムなのですが
これをいじくって画像をグレースケールにするプログラムにしていただけませんか?
お願いいたします!!


455 名前:デフォルトの名無しさん :04/05/30 17:20
#include "_wmgraph.h"
#include "_stdfunc.h"
main()
{
_init_wmimage();

printf("JPEGファイルを表示します.\n");
printf("何かキーを押して下さい.\n");
getchar();

char fname[256];
if(_fileopen(fname)) {
_bmap *b = _read_bmap(fname);

_newpage(1,"JPEG FILE",10,10,-(b->w),-(b->h));

_setactivepage(1);
_put_bmap(b, 10);
_putimage(0,0,10);
_setactivepage(1);



456 名前:デフォルトの名無しさん :04/05/30 17:20
続き
//画像の操作
unsigned char *c = b->b;//bの画素の先頭へのポインタ
int blw=b->lw; //画素1ラインのバイト数

for (int i=0; i<b->h; i++)
for (int j=0; j<b->w; j++) {
//配列cで(i,j)画素の操作ができる.
c[blw*i+3*j+0]=0; //Blue
c[blw*i+3*j+1]=0; //Green
//c[blw*i+3*j+2]=0; //Red
}

_newpage(2,"JPEG FILE",20,20,-b->w,-b->h);
_setactivepage(2);
_put_bmap(b, 10);
_putimage(0,0,10);
_setactivepage(2);

delete b;//画像を破棄
}
return 0;


457 名前:デフォルトの名無しさん :04/05/30 17:30
>>453 うわ〜〜〜ん。
プリプロセッサ出力眺めてみてさっき気づいたよ…

458 名前:デフォルトの名無しさん :04/05/30 17:56
はじめまして

Navigate2もしくはNavigateでIEコンポーネントを使った場合の
navNoHistoryの指定(履歴にいれない)をVC++で行う場合は
どうなるんでしょうか?

よろしくお願いします



459 名前:デフォルトの名無しさん :04/05/30 18:01
>>456
c[blw*i+3*j+0]=0; //Blue
c[blw*i+3*j+1]=0; //Green
//c[blw*i+3*j+2]=0; //Red

const unsigned offset = blw * i + 3 * j;
const unsigned gray = (c[offset] + c[offset + 1] + c[offset + 2]) / 3;
c[offset] = gray;
c[offset + 1] = gray;
c[offset + 2] = gray;
にすればrgb平均化によるグレイ化ができる。
但し、要求仕様によってはgrayの式を調整する必要あり。


460 名前:デフォルトの名無しさん :04/05/30 18:31
☆★☆★ 日本語プログラミング言語『ひまわり』 ☆★☆★

日本語で『こんにちはと、言う。』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【『http://www.xxxx.xx/』を、『index.htm』へ、HTTPダウンロード。】
とすれば自動的にダウンロードできる優れ物です!!

↓日本語プログラミング言語『ひまわり』
http://hima.chu.jp/index.htm
↓日本語プログラミング言語『ひまわり』スレッド
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50


461 名前:デフォルトの名無しさん :04/05/30 19:54
>>459 先生!有難うございました!

462 名前:デフォルトの名無しさん :04/05/30 20:01
猫でもわかる〜のHPみたんですけどさっぱりわかりません。
僕は猫以下なんでしょうか?

463 名前:デフォルトの名無しさん :04/05/30 20:04
猫でもわかるとか、猿でもわかるとか、そういうタイトルは
やめて欲しいな

464 名前:デフォルトの名無しさん :04/05/30 20:48
終了ボタンを作ってそれを押すとソフトを終了させたいんですけど、なんて書くのかわかりません。
endとかexitと一言書いただけじゃ終わりませんでした。
先輩方、どうかアドバイスお願い致します。

465 名前:デフォルトの名無しさん :04/05/30 20:53
>>464
Dialog→CDialogのEndDialog
SDI・MDI→CWinAppのCloseAllDocuments

466 名前:デフォルトの名無しさん :04/05/30 20:54
main()
{
 while(MessageBox(0,"push cancel button",0,0) == IDOK);
}

cancelを押すとソフトが終了

467 名前:464 :04/05/30 20:57
ありがとうございます。さっそく試してみます。

468 名前:デフォルトの名無しさん :04/05/30 21:19
DirectShowと戦うスレにも投稿していたのですが、こちらにも投稿させていただきます。
VisualC++ .NETを使用しています。
AVIファイルを再生中に停止させて、その画像を保存したく思います。
いったんクリップボードに保存したいのですが、うまくいきません。
ご教示お願いします。

Video *ourVideo= new Video("d:\\test.avi");
ourVideo->Owner = this->pictureBox1;
ourVideo->Play();
ourVideo->Stop;
Clipboard::SetDataObject(this->pictureBox1->Image);

469 名前:名無し@沢村 :04/05/31 05:52
おれのVisual C++には、ocidl.hがはいってないんだけど、どっからDLできますか?
ちなみにborland C++のocidl.hいれたけど、ダメでした…

470 名前:デフォルトの名無しさん :04/05/31 06:32
>468
>うまくいきません。

だけで、症状(エラーが出るとかクリップボードに張り付かないとか)も書かないから無視されるんだよ
挙げ句はマルチか?最低ですね

471 名前:デフォルトの名無しさん :04/05/31 06:48
>ourVideo->Stop;
ってなんだろ。

472 名前:デフォルトの名無しさん :04/05/31 07:06
>>469
PSDK

473 名前:デフォルトの名無しさん :04/05/31 16:40
/*
ご存知の方おしえてください
formatGMTを使用して日付表示を変更したいのですが
*/

CTime Timetest(1999,3,19,22,15,0);
//とした時
CString str;

Timetest.formatGmt(str);
//strに空白が帰ってきます。何がいけないのか分からず困っています。

//よろしくお願いします。


474 名前:デフォルトの名無しさん :04/05/31 17:07
>>473
関数の書式の読み方が根本的に間違ってる
CTime::Format()は二通りの書式があるがどちらもリターンがCString

str = time.Format("%H:%M:%S");

475 名前:デフォルトの名無しさん :04/05/31 17:35
>>474
回答ありがとうございます。
()内にコンバートされた値が入る訳ではなく変換後の形式を指定するのですね?

formatGMT変換自体が19-MAR-1999 22:15:00
のように変換してくれるものだと勘違いしておりました。


476 名前:デフォルトの名無しさん :04/05/31 20:59
CTimeにそんなメンバがあったとは・・・今までずっとCStringのFormatで入れとったorz

477 名前:デフォルトの名無しさん :04/05/31 22:44
>>476
オレモダ orz

478 名前:デフォルトの名無しさん :04/05/31 22:57
OΓZ

479 名前:デフォルトの名無しさん :04/05/31 23:46
 __
∠_/|
|○|

480 名前:デフォルトの名無しさん :04/06/01 00:57
∠_/|
_|○L

481 名前:デフォルトの名無しさん :04/06/01 01:28
∠_/Z
_|○L


482 名前:デフォルトの名無しさん :04/06/01 02:56
standardとproffesionalでは最適化の有無の違いがあるって聞いたんだけど、
最適化って何?無いと駄目?
(vc++.net standardとvisual studio.netで迷っている。)


483 名前:デフォルトの名無しさん :04/06/01 03:05
>>482
最適化されないと、インライン関数がインライン展開されない。
その他諸々も含めて、場合によってはかなり遅いコードになる。

484 名前:VB厨 :04/06/01 12:19
教えてください。VCで自作関数のDLLを作成してみました。
VBから引数付きで関数を呼び出して
VC側で静的な文字列をVBに戻り値として返す処理です。
VCへ渡す値のパラメタはLPCSTRで宣言し戻ってくるパラメタはLPSTRで
宣言しました。VC側のデバッグでは戻り値のパラメタに文字が格納されて
おりますが、VB側に処理が帰ってきた時、値が""となっており
空白になってしまいました。ポインタとかその辺りの問題だと思うのですが
どうかお力添えをお願いします。

VBのDeclereでは VCに渡す値のパラメタをByVal aa As Stringで
戻る値を ByRef bb As String にしています。
VCはMFCのDLLになります。

485 名前:デフォルトの名無しさん :04/06/01 12:27
>>482
stdでも普通にプログラムは組めるし、一般に配布して他の人に使ってもらう分にも
特に問題はない。プログラミング行為自体にそれほど制約が加わるわけじゃないの
で、趣味でやる程度ならそれで良い。

成果にこだわりがあるとか、後々こだわりが出てくる可能性があるとか、突き詰めて
プログラミングをやっていきたいなら上のを買えば良い。あるいはお金に余裕があって
その金額差にとりあえず投資しても惜しくないという場合もそっちを買っておけば、大
は小を兼ねるってことになるだろ。

486 名前:VB厨 :04/06/01 13:35
解決しました。
VBで受ける場合はByte(配列)にして受けるんですね
上手く取得できました

487 名前:デフォルトの名無しさん :04/06/01 22:54
つまらん質問ですがおながいします。
VC6なのですが、ファイルビューだとプロジェクト上で右クリメニューに
ビルドメニューがでるのですが、クラスビューだと出ません。
何か理由があるのでしょうか?

488 名前:デフォルトの名無しさん :04/06/01 23:46
>>487
クラスはコンパイル単位に依存しないからでは?

489 名前:487 :04/06/01 23:52
>>488
レスありがとうございます。
>クラスはコンパイル単位に依存しないからでは?

なのですが、クラスビューはプロジェクト単位にクラスをまとめて
表示しているので、そのクラス群のルートであるプロジェクトで
ファイルビューのようにビルドメニューが出てくれてもいいような
気がするのですが。。。

490 名前:デフォルトの名無しさん :04/06/02 10:57
今までUnixで開発していたのですが今回Visual Cで開発することになりました。
環境はXp+VC6.0 Entです。
行番号を知りたいのですが何か方法はあるでしょうか?
エディタに行番号を出力できないようなので。
よろしくお願いします。

491 名前:デフォルトの名無しさん :04/06/02 11:11
>>490
右下に表示されてたと思った。

492 名前:デフォルトの名無しさん :04/06/02 11:19
>>490
どとねとに変えれば左端に行番号表示できるようになるぞ。
いまんとこ俺がvcどとねと使ってて唯一便利に感じる所だ。

493 名前:490 :04/06/02 11:31
>>491,>>492
ありがと。気づかなかった。

494 名前:デフォルトの名無しさん :04/06/02 12:43
VC7 のテキストエディタなんだが,
「選択の開始」ていうのをあるキーにわりあてたいんだが,
キーのカスタマイズに項目にない!

たしか VC6 ではできたと思うのだが…


495 名前:デフォルトの名無しさん :04/06/02 21:58
「選択の開始」ってなんだ?
VC6付属のMSDNライブラリ検索しても出てこないぞ?

496 名前:デフォルトの名無しさん :04/06/02 22:27
だがって使いすぎ

497 名前:494 :04/06/03 09:15
>>495


「選択の開始」ていうのは,
それを on にすると,そこからカーソルを動かすと,
その始点からの領域が選択領域になるようなやつ

秀丸や Emacs にはらくらくあるし,
もちキーをわりあてることもできる

498 名前:デフォルトの名無しさん :04/06/03 09:34
文字選択モードの開始ってやつだな。こんなのあるんだ。知らんかった。
でもブロック選択できねぇ・・orz
やっぱマウスでやる方が使い勝手いいわ。

499 名前:デフォルトの名無しさん :04/06/03 10:15
>>498
>文字選択モードの開始ってやつだな。

そうそうそれのこと.

VC6 にはあったはずだが,
VC7 にはキーの設定のところで見あたらない

なんとかならない?

コーディングするときマウス使いたくないじゃん

500 名前:デフォルトの名無しさん :04/06/03 10:52
a=2 なら b=121
a=30 なら b=1301

みたいにaの値の前後に1をつけてbに代入するにはどうしたらいいんですか?


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