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


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

★初心者にVisual C++を教えるスレ★ Part13
251 名前:デフォルトの名無しさん :04/07/15 16:09
隠すだけでいいじゃん。
それが嫌ならテキストを保存してからEditを破棄すれ。

252 名前:デフォルトの名無しさん :04/07/15 16:09
語感の「オレ解釈」にこだわってても生産性はあがらないYO!

253 名前:デフォルトの名無しさん :04/07/15 18:21
質問です。
ウインドウタイトルから「無題-」というのをはずして、
ファイルを開いた時にのみ、そのファイル名を表示したいんです。

PreCreateWindowで、
cs.style ^= (LONG)FWS_PREFIXTITLE;
cs.style &= ~(LONG)FWS_ADDTOTITLE;
とやったら、「無題-」はでなくなったのですが、
その後にSetTitleを実行してもタイトル名が表示されなくなってしまいました。

私が望んでいることを実行する方法はないでしょうか?


254 名前:デフォルトの名無しさん :04/07/15 18:31
SetWindowText

255 名前:デフォルトの名無しさん :04/07/15 22:27
>>253
SetWindowLongPtr()でウィンドウスタイルを動的に変更してみてはどうだね

256 名前:253 :04/07/16 09:19
>>254,255
どうもありがとうございます。
とりあえず254のやり方でやってみたら出来ました。
SetTitleとSetWindowTextは同じ事をするのだと思っていたら、
違うのですね。
どうもありがとうございました。



257 名前:デフォルトの名無しさん :04/07/16 10:45
昨日も質問させていただいたのですが、レスがなかったので、
今一度質問させていただきます。
MFCで、XMLを解析してくれるクラスはありますか?

258 名前:デフォルトの名無しさん :04/07/16 10:49
MFCのクラス階層を見ればわかりますが無いです。

259 名前:デフォルトの名無しさん :04/07/16 14:39
.NETthespokeで買ったんですけど、"{"の後に自動インデントさせるにはどうすればいいんですか?

260 名前:デフォルトの名無しさん :04/07/16 15:37
説明不足だと思われ。

261 名前:デフォルトの名無しさん :04/07/16 15:53
意味はわかるが。持ってないから答えられないけど。専用スレなかったっけ。

262 名前:デフォルトの名無しさん :04/07/16 17:47
>>259
VS .NET 2003 Pro ならメニューの
ツール→オプション→テキストエディタ→C/C++
でスマートインデントをオンにする。
theSpoke版も同じじゃないかな?

263 名前:デフォルトの名無しさん :04/07/16 18:51
CBitmapのデータをファイルに書き出すにはどうしたらよいのでしょうか?

264 名前:デフォルトの名無しさん :04/07/16 19:57
APIスレにはHBITMAPからファイルに書き出すには、って質問が。

265 名前:263 :04/07/16 19:59
>>264
えーっと、それは私ではないですが。

266 名前:デフォルトの名無しさん :04/07/16 21:44
からage

267 名前:デフォルトの名無しさん :04/07/16 21:46
>>262
ありがとうございます。無事出来ました。

268 名前:デフォルトの名無しさん :04/07/16 21:59
質問です
VC++.netで開発してるんですが、
DLL作成のプロジェクトで
VB.netのプロジェクトをインポートしたいです。
ようするに、C++のアンマネージドDLL?を作りたいんだけど、
C++がぜんぜん分からないからロジックはVBで実装しようと。。。
VBに実装してあるHello Worldメソッドを呼び出す、
C++側ソースとか書いてくれたらうれしいです


269 名前:デフォルトの名無しさん :04/07/16 22:52
出来ません。



270 名前:デフォルトの名無しさん :04/07/16 23:03
うん。

271 名前:268 :04/07/16 23:36
複数言語サポートっていうのはこういうことじゃなくて?

272 名前:デフォルトの名無しさん :04/07/16 23:39
Unicodeが扱えるって事じゃないのか?

273 名前:デフォルトの名無しさん :04/07/17 00:01
>>271
複数サポートされているのはプログラミング言語じゃなくて、自然言語(日本語・英語・中国語……)の方

274 名前:デフォルトの名無しさん :04/07/17 00:02
>>271
それは、.NETの話ではないのか?
アンマネージドは.NETではない

275 名前:デフォルトの名無しさん :04/07/17 00:45
VC++6.0で、Win32コンソールアプリを、MFC使わずに作っています。
IEのオブジェクトを作るのにCreateObject("InternetExplorer.Application")
みたいな書き方でコンパイルが通るようにするにはどんなヘッダーを
インクルードすればよいのでしょうか。




276 名前:デフォルトの名無しさん :04/07/17 00:57
ピンチヘッダー

277 名前:268 :04/07/17 01:29
.NETの話です。
な、なんかチンプンカンプンになってきたー
ここで言ってるのはプログラム言語の複数じゃないの?
あと表のところに、VC++のみアンマネージドで作れるって・・・
ttp://www.atmarkit.co.jp/fdotnet/basics/msdotnet/msdotnet_04.html

278 名前:デフォルトの名無しさん :04/07/17 01:52
プログラム言語複数で間違いないよ。VC++で開発してもVBで開発しても
C#やJ#で開発しても同じ.NETアプリを作れるから便利だろ?しかも
開発環境は共通しているからわざわざ操作方法を各言語ごとに覚えなくても
済むんだぜ!ということかと。
ついでにアンマネージ・コードを開発できるのはVC++.NETだけで、
ほかのC#やVB.NETを使った場合は.NETアプリしか作れないよ、と読める。
VC++のコンパイラでVBのコードをコンパイル出来るという意味ではない。


279 名前:デフォルトの名無しさん :04/07/17 01:58
フォルダを開いた画面で使われている
「ファイルの縮小表示ができるリストビュー」
を自作のアプリで使用したいのですが
誰かこのコントロールの名前を知りませんか?

280 名前:デフォルトの名無しさん :04/07/17 02:05
というか、VC++で開発してもVBで開発しても
C#やJ#で開発しても、.NETを使うなら.NETを覚えなきゃならないぜ。
.NETを覚える苦労に比べたら、言語の違いなんてどうでも良くなるぜ。
つまり.NET専用言語のC#以外は、.NET使うなら意味無いぜ
ってこと。

281 名前:デフォルトの名無しさん :04/07/17 02:33
>>275
#pragma comment(lib, "comctl32.lib")
#include <commctrl.h>
こうか?

IEコンポーネントをCreateWindow関数で作るサンプルコードなら
ここにもある↓
http://www.nitoyon.com/vc/tips/ie_component.htm#howto2

282 名前:デフォルトの名無しさん :04/07/17 02:36
リストビューコントロールのことか?

283 名前:デフォルトの名無しさん :04/07/17 02:58
>>277
VC++.NETを使ってアンマネージドで作成したものは、
.NET対応の実行ファイルを出力しない。
従来のWindowsプログラムと同じようにマシン語のファイルを、出力するの。
当然、.NETフレームワークで提供される機能も使えないので、
他の.NETな言語で作成したものを使うこともできない。


284 名前:デフォルトの名無しさん :04/07/17 06:30

.NETでつくった実行ファイル(.exe)ってWindows 200x,WindowsXPで
しか動かないのでしょうか。しかも特定のdllファイルが入ってないと
実行時にdllが見つからないとかのエラーも相変わらずですか?



285 名前:デフォルトの名無しさん :04/07/17 08:05
>281
サンプルコーディングはいろいろあるのは知ってました。
ただインクルードするヘッダーファイルについては
どれもなんも書かれていないので困っておりました。
といってもコンパイル時に出るエラーは初歩的なエラー、
ほとんど***が定義されてない・・・たぐいですが。
とりあえず教えてもらったファイルを追加してみます。

※どのヘッダーファイルが必要で、なおかつどんな順番に
 インクルードすべきかでまごついているのはVC++の使い
 方が間違っているのでしょうか?
 やっぱ基本からVC++の本買って読んだ方がいいですかね。





286 名前:デフォルトの名無しさん :04/07/17 09:13
>>284
開発が出来ないだけで9x系でも.NETをDLするだけで動かせます。
でかすぎるランタイムだけどな…

287 名前:デフォルトの名無しさん :04/07/17 10:04
9xでも95では動かないよな

288 名前:デフォルトの名無しさん :04/07/17 18:01
今時、95なんて・・・


うちの会社ではまだ使ってるけどね。しかもPC98用。

289 名前:268 :04/07/18 01:43
回答ありがとうございます。
要するに、マネージドで出力したプログラムは、使えるフレームワークが同じなので、
何言語で作ってもかわらない。
そうすると、僕の質問である、
「C++アンマネージドDLLの処理をVB.NETで書く」
はありえないんですね。
VB.NETはマネージドでフレームワークを要するから・・・
ではC++マネージドDLLで実現することは出来るのでしょうか?



290 名前:デフォルトの名無しさん :04/07/18 01:57
test

291 名前:デフォルトの名無しさん :04/07/18 04:52
テキストファイルのデータを読み込んでの実行は、
どうやって実行するんですか?

292 名前:デフォルトの名無しさん :04/07/18 05:09
テキストファイルのデータを読み込んでの実行します

293 名前:デフォルトの名無しさん :04/07/18 10:44
いや、テキストデータを読み込んでから実行じゃないのか?

294 名前:デフォルトの名無しさん :04/07/19 02:23
今までVB6でアプリケーションを作成してきましたが、今回VC++で
仕事を押し付けられそうなんですが、IEにアドオン機能を付け加える
というのですが、VC6でやればいいでしょうか?それとも今ならVC++.NET
で作成したほうがいいでしょうか?
開発環境はwin pro 2000で、アドオンするIEは5.5以上です。


295 名前:デフォルトの名無しさん :04/07/19 02:26
>>294
相手が.NET Frameworkランタイム入れてくれるならVC++.NETでもいいけど、
そうでなけりゃVC6しか選択肢は無いでしょ。

296 名前:デフォルトの名無しさん :04/07/19 02:31
>>295
.NET Framework入ってないと、VC++.NETのアプリは動かないの?


297 名前:デフォルトの名無しさん :04/07/19 10:37
>>295 ( ´,_ゝ`)プッ・・

298 名前:デフォルトの名無しさん :04/07/19 11:57
それでVC++.NETで.NET Frameworkがはいってない
ウィンドウズ向けのアプリは開発できないの?


299 名前:デフォルトの名無しさん :04/07/19 11:58
できます。

300 名前:デフォルトの名無しさん :04/07/19 13:54
VC7のリソースエディタでメニューを編集しています.
しかし,「Grayed」をtrueにして,ビルドをしても,
起動したアプリケーションでは,そのtrueにしたメニューが普通に選択できてしまいます.
どうすれば,最初に使用不可能の状態になるんですか?
(これは,ひょっとしてバグですか?)

301 名前:デフォルトの名無しさん :04/07/19 17:20
あるメニューが選択されたら、ビットマップを表示したいのですが、
そのメニューハンドラで

//public:CBitmap bitmap,HBITMAP capBitmap
bitmap.Attach(capBitmap);
CClientDC tempDC(this);
CDC dc;
dc.CreateCompatibleDC(&tempDC);
CBitmap *pOld = dc.SelectObject(&bitmap);
tempDC.BitBlt(400,0,320,240,&dc,0,0,SRCCOPY);
dc.SelectObject(pOld);

としても、黒い画像が貼られます。
HBITMAPにデータ転送は、たぶんできているのでハンドラが間違っていると思うのですが、
このソース、どこかおかしい点はあるでしょうか?

302 名前:デフォルトの名無しさん :04/07/19 17:48
>>301
DDBとDIBって知ってる?

303 名前:デフォルトの名無しさん :04/07/19 17:48
>>302
わからないです。

304 名前:デフォルトの名無しさん :04/07/19 17:52
>>303
絶句してしまった。w

305 名前:デフォルトの名無しさん :04/07/19 17:53
>>303
DDB = DirectDraw Bitmap
DIB = DirectInput Bitmap

306 名前:デフォルトの名無しさん :04/07/19 18:00
>>301
なんで空のCDCを直に作ってんだよ

307 名前:デフォルトの名無しさん :04/07/19 18:02
>>306
それは、どういうことですか?

308 名前:301 :04/07/19 18:06
bitmap.Attach(capBitmap);を
bitmap.LoadBitmap(IDB_BITMAP1);
と、適当に作ったファイルを読み込むようにすると、表示されるんですが。
(今、やりたいのは、DirectShowでキャプチャをしてビットマップを表示です。)

309 名前:デフォルトの名無しさん :04/07/19 18:46
Device Independent Bitmap

310 名前:デフォルトの名無しさん :04/07/19 18:49
>>309
おまい、ばか?
そのままやんけw
その意味を答えてみろよ

311 名前:デフォルトの名無しさん :04/07/19 19:01
必死だな・・夏の暑さで頭がやられちゃってるのか。

312 名前:デフォルトの名無しさん :04/07/19 19:04
>311
答えれないと、結局それなんですねw

313 名前:301 :04/07/19 19:24
あの〜、それで、どのようにすれはよいのでしょうか?

314 名前:デフォルトの名無しさん :04/07/19 19:38
>>312
http://yougo.ascii24.com/gh/07/000779.html

315 名前:デフォルトの名無しさん :04/07/19 20:14
>>313
夏厨もまとわりついてることだし、自分で探せ。
その程度のサンプルならweb上に腐るほどあるから。

316 名前:デフォルトの名無しさん :04/07/19 20:16
>>315
いろいろ、試してみてできなかったんですが。

317 名前:デフォルトの名無しさん :04/07/19 21:06
DirectInput Bitmapって何ですか?
ぐぐっても出てこないですが。

318 名前:デフォルトの名無しさん :04/07/19 21:11
ググっても出てこないんならこの世に存在しないんだろ。

319 名前:デフォルトの名無しさん :04/07/19 21:18
試してないね。

ほんとにやって出来ないとなると、向いてないとしか言いようがない。
初心者にやさしくしたいのはこのスレの趣旨からも当然だが、
それにも限度が・・ということ。

すまん。ちょっと厳しすぎだが・・・

320 名前:デフォルトの名無しさん :04/07/20 08:57
>>319
いろいろ、サンプルのようなものがあるのは調べてわかっています。
で、それをいろいろ試してもできなかったので、ここに聞きにきています。

321 名前:デフォルトの名無しさん :04/07/20 09:37
>>320
素朴な疑問だが、メニューハンドラではなく(サンプルにあるように)普通に表示させることはできてるの?

322 名前:デフォルトの名無しさん :04/07/20 09:53
>>320
普通に、というのがちょっと曖昧でよくわからないですが、

ファイルに保存してあるビットマップの表示は可能。
DirectShowのサンプルでMFCを使わない方法では確認。

323 名前:301 :04/07/20 17:43
解決しました。
どうやら、ファイルからフレームをキャプチャできてなかったようです。
お騒がせいたしました。

しかし、この板に来ると,Nortonが反応するんだが。
なんなんだこれは?

324 名前:デフォルトの名無しさん :04/07/21 00:15
>>323
新型ウイルスの実験中です。
お気になさらずに。

325 名前:デフォルトの名無しさん :04/07/21 09:45
>>324
気にするよ。
この症状は、皆様出てるの?

326 名前:デフォルトの名無しさん :04/07/21 09:54
既出ネタうざい

327 名前:デフォルトの名無しさん :04/07/21 11:06
>>325
ちゃんと対策している奴は出ないから気にすんな

328 名前:デフォルトの名無しさん :04/07/21 12:34
>>325
cat /etc/passwd | m*il  (*=a)

この文字列(スレタイ)に反応してるみたい
対策は知らん

329 名前:デフォルトの名無しさん :04/07/21 12:39
COM初心者です。
InternetExplorer 上で使われる ActiveX コントロールを開発しなくては
いけなくなったんですが、参考になるソースとかアーティクルとかないでしょうか?
CodeProjectとかCodeGuruを見てみましたが、シンプルなわかりやすい例が見つかりませんでした。

UNIX系のアプリケーションばかりつくってたんで、GUIDとかATLとかCOMとかハァ?状態です。
開発環境は VS.NET2003 です。

330 名前:デフォルトの名無しさん :04/07/21 12:41
ある画像処理プログラムで回転の部分の最適化をしているのですが、
どうも、以前はReleaseモードでやっても激遅だったのに、さほどいじった記憶は無いのに
最近になって3倍ちょっとも速くなっていました。
その間、やった事と言えば98DDKをインストールしてMASMを導入したのですが、
VC++のコンパイル時の最適化で勝手にMMXやSSEなどに最適化してくれるってことはありうるのでしょうか??


331 名前:デフォルトの名無しさん :04/07/21 12:43
インラインアセンブラでMMXとか使うようにコーディング
してないのなら無いぽ。


332 名前:330 :04/07/21 12:55
ありがとうございます。そうですか、、何で速くなったか謎なのが不可解ですが、
まだ最適化の余地があるのは良かったです。。原因の方はやはり知りたいですが・・・。

333 名前:デフォルトの名無しさん :04/07/21 13:06
>>332
計測方法に問題があったとか?

334 名前:デフォルトの名無しさん :04/07/21 13:34
>>330
妖精さんがCPUを強まったものに交換してくれたとか。

335 名前:デフォルトの名無しさん :04/07/21 13:51
初めまして、当方VisualStudio.NET2003を入れてC++の勉強してます。
なんですが、いきなり問題が…
とりあえず、何か出力しようと思い
#include <iostream.h>
void main(void)
{
  cout << "test" << endl;
}
とやった所、iostream.hが見つからないとのエラーが出て、VSフォルダを見るとiostreamのファイルが。
そこで、#include <iostream>と書き換えたところ
coutとendlに対して、定義されていませんとのエラーが出ました。
MSDNライブラリで色々調べたのですが分からないです。
誰か教えてください、お願いします。

336 名前:デフォルトの名無しさん :04/07/21 14:00
>>335
std::cout
std::endl

337 名前:デフォルトの名無しさん :04/07/21 14:00
>>335
.hがくっついてないのは、名前空間が導入された新しいバージョン。
coutやendlほかいろいろがstdという名前空間に放り込まれています。
std::cout って書くなり、面倒だと思うならusingするなりしましょう。

338 名前:デフォルトの名無しさん :04/07/21 14:06
>>336-337
早速の返答ありがとうございます。
usingについて少し調べてみます。

339 名前:330 :04/07/21 14:20
>>333
もしかしたらDebugモードのまま測定してたのかもしれません。こちらでは普通に30秒とかかかったので。(Releaseで8秒)
以前ビルドしたやつ(DDK導入以前)のバックアップで計ってみたら同じ速度だったので、Debugモードで測ってたのかもです。
お騒がせしました。。。

340 名前:デフォルトの名無しさん :04/07/21 14:42
表示中のダイアログ(CDialog)において、自身がモーダルかモードレスかを取得する方法はないでしょうか?
(Javaで言うところのisModal()のような)

OnInitDialog()でContinueModal()でモーダルループが継続中かチェックしようとしましたが、
モーダル/モードレスのいかんに関わらず結果は同じでした。

ご回答よろしくお願いします。

341 名前:デフォルトの名無しさん :04/07/21 15:08
>>340
モードレスの場合、破棄の方法などでコードが違ってくるわけだから、作成元で
ごっちゃにしたらまずくないかな?呼び出し側では呼び出すときにどちらを使う
か分かるわけだし、フラグ変数使って情報を渡すことは可能だと思うけど。

どういうシチュエーションで利用しようとしているのかよく分からないんで的はずれ
かもしれないが。

342 名前:デフォルトの名無しさん :04/07/21 16:26
HWNDやHDCの値って固定なんですか?
プロシージャ以外でhWndの値を使いたいんですがグローバルで保持していいものなのか気になります
どうか教えてください

343 名前:デフォルトの名無しさん :04/07/21 18:29
OWNDCが指定してあるなら、固定として扱ってもいい、って
MSDNが云ってた気がする。逆に言えばそれ以外はちゃんと解放しろとも。

344 名前:デフォルトの名無しさん :04/07/21 18:37
"visual c++"のプログラミングがわかりません。問題が、<入力された3値を辺に持つ三角形の種類、及びその面積を表示するプログラムを作成せよ。
ただし、「ポインタ変数を引数に持つ関数を作成、使用すること」>というものなんですが、初心者で基本的なこともわからないので、お手数ですがこれ
をプログラムしてもらえませんか?ホントわからないので、省略なしに全てお願いします。


345 名前:デフォルトの名無しさん :04/07/21 18:38
引っ越してキター!

346 名前:デフォルトの名無しさん :04/07/21 18:40
>344
幾ら出せる?

347 名前:デフォルトの名無しさん :04/07/21 18:41
宿題スレ行けって。

348 名前:デフォルトの名無しさん :04/07/21 18:50
>>344は一級の釣り師

349 名前:344 :04/07/21 18:57
ようかんマン以外で、教えてもらえるとこないっすか?



350 名前:デフォルトの名無しさん :04/07/21 18:58
無い。

351 名前:344 :04/07/21 19:18
>>350  ありがとーございます!

352 名前:デフォルトの名無しさん :04/07/21 19:54
>>341
回答ありがとうございます。

汎用的な子画面となるダイアログを作成して、呼び出し元に応じて
モーダル/モードレスを可変にすることが目的でした。
また、その際に画面内のコントロールをモードによって、呼び出し元とのI/Fを意識せずに
制御できればと考えていたのですが・・・・

一応今回の件は、ダイアログクラス内にBOOL型のメンバ変数を確保してコンストラクタでFALSEをセット、
オーバーライドしたDoModal()を経由した場合にのみTRUEをセットする方法で対応することにしました。

お手数をお掛けして申し訳ありませんでした・・・・


353 名前:デフォルトの名無しさん :04/07/21 20:55
>コンストラクタでFALSEをセット、 オーバーライドしたDoModal()を経由した場合にのみTRUEをセットする方法
うーむ……

354 名前:デフォルトの名無しさん :04/07/21 21:19
>>352
それをどうせやるなら

CDialog - CMyDialog - CMyModalDialog
                  - CMyModelessDialog

と派生クラスにしたほうがスマートでないでしょうか とおもいました

355 名前:デフォルトの名無しさん :04/07/21 21:27
同じことをするんであれば、どっちもありだと思うが。考え方とそのプログラムの
他の部分がどうかにもよる。

でもそもそもそういうダイアログを兼用で作るってのが一般的なのか疑問。

356 名前:デフォルトの名無しさん :04/07/21 22:45
モーダルとモードレスでは寿命が違うからデータハンドリングも違えば
ボタンの意味合いも変わってくるからねぇ。
別々に外枠を作って、その中身だけ共通にした方がすっきりするような希ガス。

357 名前:デフォルトの名無しさん :04/07/21 22:49
寿命?

358 名前:デフォルトの名無しさん :04/07/21 23:34
<入力された3値を辺に持つ三角形の種類、及びその面積を表示するプログラムを作成せよ。
ただし、「ポインタ変数を引数に持つ関数を作成、使用すること」>

何この問題?「入力された3値を辺に持つ三角形」って何?問題作った人、算数できるのかな?



359 名前:デフォルトの名無しさん :04/07/21 23:39
>>358
(- -;)...

360 名前:デフォルトの名無しさん :04/07/22 08:48
>>358
宿題スレへどうぞ

361 名前:デフォルトの名無しさん :04/07/22 10:32
 .__
ヽ|・∀・|ノ 来るな!


362 名前:デフォルトの名無しさん :04/07/22 20:11
VC++6.0でWin32コンソールアプリ作成を試みてます。
コンパイルすると、「CString」が定義されていない
識別子です。。って出るんですが?どのヘッダーファ
イルをインクルードすればいいのでしょうか?


363 名前:デフォルトの名無しさん :04/07/22 20:12
atlmisc.h(WTL)か、afx.h(MFC)だったっけか。

364 名前:デフォルトの名無しさん :04/07/22 21:43
>363
確かそれを書いてダメだったよーな。
あまりに基本的すぎるのか、MSDNにはどのヘッダーファイルを
インクルードすればCStringクラスが使えるのかなんも書いて
ないでやんす。


365 名前:デフォルトの名無しさん :04/07/22 21:45
grepしろや。

366 名前:デフォルトの名無しさん :04/07/22 21:52
#include <string>
typedef std::stirng CString;
//VC初めて1ヶ月くらいまでなら平気

367 名前:デフォルトの名無しさん :04/07/22 21:56
>365
やってるよ!CStringがたくさん出てきてどのヘッダファイルか
わかんねーんだよ。ポイントを教えろ!

>366
どうも、おおきに。せっかくですがそんな書き方はダサくていやです。



368 名前:デフォルトの名無しさん :04/07/22 22:00
afxwin.h

369 名前:デフォルトの名無しさん :04/07/22 22:17
>368
それもダメだったよ。

370 名前:デフォルトの名無しさん :04/07/22 22:24
プロジェクトの設定でMFCを使用しないになってない?

371 名前:デフォルトの名無しさん :04/07/22 22:55
教えてください。
マウスカーソルを変更したり、背景にビットマップを表示したいのです。
APIで最初から全部プログラムを書いた時は簡単に出来ました。
WNDCLASSEXを宣言してそのクラスのhCursorやhbrBacgroundに
ロードすればよいわけです。
それがMFCとなると、どこで何をしていいのかさっぱりわかりません。
どなたか、お願いします。

372 名前:デフォルトの名無しさん :04/07/22 23:10
>370
MFCを使わない方向でやりたいです。
でも、試しにMFCを使う2通りの方法をそれぞれ試して
みましたがそれでもCStringは定義されていない。。
と出ます。なにがいけないのでしょうか。


373 名前:デフォルトの名無しさん :04/07/22 23:17
grep class.*CString *

374 名前:デフォルトの名無しさん :04/07/22 23:35
>>372
Win32 Console Applicationでプロジェクト作って
プロジェクトの設定で共有DLLでMFCを使用に変更したあと、

#include "afx.h"
int main(int argc, char* argv[])
{
CString s;
s = "test\n";
printf((LPCTSTR)s);
return 0;
}
をビルドしたらできたよ?

375 名前:デフォルトの名無しさん :04/07/22 23:46
>>371
SetClassLong
SetClassLongEX
あたりを使うんじゃないかな?

376 名前:デフォルトの名無しさん :04/07/23 01:04
hbrBackgroundにビットマップって指定できたんだ。

カーソルなら、WM_SETCURSORのハンドラをつくりゃいい。

377 名前:デフォルトの名無しさん :04/07/23 09:25
VisualC++2003なんですが

warning C4311: '型キャスト' : ポインタを 'LPVOID' から 'DWORD' へ切り詰めます。

このワーニングが納得できません。
なんで出ますか?

378 名前:デフォルトの名無しさん :04/07/23 09:40
>>371
SetCapture();
::SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_XXX)));

OnNcHitTestとかにこれで普通に変わるけど、こんなのとは違うのかな?

379 名前:デフォルトの名無しさん :04/07/23 09:42
>>377
どういうところで出るのか分からないので一般的な話になるけど、
その関数の定義を確認して、使うべき型がちゃんと入ってるか調べては?

380 名前:デフォルトの名無しさん :04/07/23 10:11
>>379

unsigned long a = 0;
void* b = (void*)a;
unsigned long c = (unsigned long)b;

↑をコンパイルすると↓のワーニングが出ます。

warning C4312: '型キャスト' : 'unsigned long' からより大きいサイズの 'void *' へ変換します。
warning C4311: '型キャスト' : ポインタを 'void *' から 'unsigned long' へ切り詰めます。


unsigned long long a = 0;
void* b = (void*)a;
unsigned long long c = (unsigned long long)b;

↑をコンパイルするとワーニングは出ませんでした。
コードをこれに変更することでワーニングを回避することにします。
しかし、理由がわかりません。sizeof(void*)は4でしたし。なぜでしょう?

381 名前:380 :04/07/23 10:16
解決しました。
デフォルトでコンパイラオプション/Wp64がセットされている為でした。
ありがとうございました。

382 名前:いなむらきよし :04/07/23 10:27
何でもキケーに聞いてくれキケー!

383 名前:デフォルトの名無しさん :04/07/23 10:59
ワーニング
ワーニング
ワーニング
ワーニング
ワーニング。


384 名前:デフォルトの名無しさん :04/07/23 12:15
CViewから派生したクラスを動的配列で保持したいと思っています.
しかし,CArrayではエラーが出て,使用することができませんでした.
(コンストラクタがprotectであることが原因といっていたと思います.)
他の動的配列,例えばCObArray等を使えば,保持できるのでしょうか?
それとも,他に何か良い方法はありますか?

さらに,このprotectなコンストラクタをpublicにしてもよいのでしょうか?

いくつか質問させていただきました.
よろしくお願いいたします.

385 名前:371 :04/07/23 12:43
皆さんいろいろありがとうございました。
>>375さんが教えてくれたやり方が、私の理想としている形でした。

以下の記述で出来ました。
HCURSOR hNewCursor;
hNewCursor = LoadCursor ( AfxGetInstanceHandle (), MAKEINTRESOURCE ( IDC_CURSOR1 ) );
HCURSOR hOldCorsor;
hOldCorsor = ( HCURSOR ) SetClassLong ( GetSafeHwnd(), GCL_HCURSOR, ( long ) hNewCursor );

HBRUSH hNewBrush;
hNewBrush = CreatePatternBrush ( LoadBitmap(AfxGetInstanceHandle (), MAKEINTRESOURCE ( IDB_BITMAP1 ) ) );
HBRUSH hOldBrush;
hOldBrush = ( HBRUSH ) SetClassLong ( GetSafeHwnd(), GCL_HBRBACKGROUND, ( long ) hNewBrush );

どうもありがとうございました。

386 名前:デフォルトの名無しさん :04/07/23 14:08
>>380
あたりまえだ。
自分がやっている事の意味を理解出来ていないのなら、
プログラマを止めた方がいい。


387 名前:デフォルトの名無しさん :04/07/23 14:20
>>386
まちがいなくプログラマじゃないでしょ。


388 名前:デフォルトの名無しさん :04/07/23 14:26
>>387
ひょっとして
void *p;
と定義して
p * 2 とか計算するつもりなんだろうか?


389 名前:デフォルトの名無しさん :04/07/23 15:25
>>386
推奨するわけではないけれど、ポインタを数値として
使うテクニックは存在すると思うが

380はやっていることを理解した上で、質問しているんだと思うけどね

390 名前:デフォルトの名無しさん :04/07/23 16:27
>>380
#include <iostream>
using namespace std;
int main () {
unsigned long a;
void* b;
unsigned long c;
cout << sizeof (a) << endl;
cout << sizeof (b) << endl;
cout << sizeof (c) << endl;
cout << sizeof ((void*)a) << endl;
cout << sizeof ((unsigned long)b) << endl;
cout << sizeof (void *) << endl;
cout << sizeof (unsigned long) << endl;
return 0;
}
で結果は何と出ます?


391 名前:デフォルトの名無しさん :04/07/23 17:23
あれこれ騒がなくても>>380はもう>>381で解決しているっていってんだからいいじゃん

392 名前:デフォルトの名無しさん :04/07/23 17:29
>>391
見落としてた orz
な〜んだ


393 名前:デフォルトの名無しさん :04/07/23 17:59
いまさらだが ポインタ→整数ならreinterpret_cast使え

394 名前:デフォルトの名無しさん :04/07/23 18:17
>>380
> sizeof(void*)は4でしたし。

>>381
> デフォルトでコンパイラオプション/Wp64がセットされている為でした。
は矛盾してないの?


395 名前:394 :04/07/23 18:25
>>394
手元に環境が無いで書いてるのだけど/Wp64って警告オプションなのね
納得した


396 名前:デフォルトの名無しさん :04/07/23 22:38
>374

そうでつか?ありがとう。
月曜に試してみます、レスがなかったらOKってことで。



397 名前:デフォルトの名無しさん :04/07/24 00:25
先生!
RegisterClass()が失敗します。GetLastError()しても返るのは0。。。
何が起こっているのですかー。

398 名前:デフォルトの名無しさん :04/07/24 01:10
C++スレから移動してきました

int main(int argc, char* argv[])
{
try
{
throw int();
}
catch(int)
{
}

return 0;
}

これだけのプログラムなのですが
例外処理 (初回) は hoge.exe (KERNEL32.DLL) にあります: 0xE06D7363: Microsoft C++ Exception。
とデバッガのアウトプットに出ます。
これはどういう意味なのでしょうか?
ビルド時に警告は何も出ていません。/GXオプションも付いていることを確認しています。
VC++6.0 SP5 Win2k


399 名前:デフォルトの名無しさん :04/07/24 01:22
try {
throw int(0);
} catch(int e) {
}

とかじゃなかったっけ?

400 名前:399 :04/07/24 01:23
先生方!
Win95でRegisterClass()が失敗します。GetLastError()しても返るのは0。。。
何が起こっているのですかー。教えてー。

401 名前:399 :04/07/24 01:27
アゲ

402 名前:デフォルトの名無しさん :04/07/24 01:30
msdn

403 名前:389 :04/07/24 01:34
>>399
そのようにしてもアウトプットにメッセージが出ました。
例外をthrowすると必ず出るもんなのでしょうか?

404 名前:デフォルトの名無しさん :04/07/24 01:39
>>400
ソースうpしろ

405 名前:399 :04/07/24 01:42
>>403
ごめんよく読んでなかった。デバッガのアウトプットに出るのは正しいんでは?


406 名前:デフォルトの名無しさん :04/07/24 01:42
必ず出るものです。

407 名前:399 :04/07/24 01:45
ソース会社においてきたーよ(´・ω・`)

win2kとxpではオッケーで、95ではダメ。
WNDCLASSはInstanceとClassNameとWndProcを設定してた気が。。。
わかりませんよねぇ(´・ω・`)


408 名前:デフォルトの名無しさん :04/07/24 02:02
そういえばW98のときにAPIで何かあったな
調べるから待たれ

409 名前:デフォルトの名無しさん :04/07/24 02:09
自分のメモには
WNDCLASS / RegisterClass の組み合わせだとWin2K/XPでしか動作せず、
WNDCLASSEX / RegisterClassEx を使うように書き換えたらWin98で動作した。
と書いてあった。


410 名前:399 :04/07/24 02:18
>>409
Σ先生マジデスカー!

最初は
WNDCLASSEX / RegisterClassEx
でやっていて、ダメだったので
WNDCLASS / RegisterClass
に変えてやってみたですよ。。。Exの時点でパラメーターか何かが誤っていたということなのかorz

ありがとう。

411 名前:デフォルトの名無しさん :04/07/24 02:19
ちなみにこんなコードが入っていた

  if(!RegisterClassEx(&wcex)){
    LPVOIDlpMsgBuf;
    FormatMessage(
      FORMAT_MESSAGE_ALLOCATE_BUFFER
      | FORMAT_MESSAGE_FROM_SYSTEM
      | FORMAT_MESSAGE_IGNORE_INSERTS,
      NULL,
      GetLastError(),
      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
      (LPTSTR)&lpMsgBuf,
      0,  // for auto allocation
      NULL
    );

    __Write_Debug_File(lpMsgBuf);

    LocalFree(lpMsgBuf);
    returnFALSE;
  }


412 名前:デフォルトの名無しさん :04/07/24 02:23
でもなぜかうちにはそれぞれのリリース用にディレクトリがあるんだよね。
コンパイラのオプションの違いかも。もうちょっと調べるわ。

413 名前:デフォルトの名無しさん :04/07/24 02:31
Win2K/XP用リリースの方には
   /D "WIN32"

んで

Win98用リリースの方には
   /D "WIN32" /D "_WIN32_W9x"

というオプションが付いておった


414 名前:デフォルトの名無しさん :04/07/24 02:37
あとね、

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_registerclassex.asp

ここに

Windows 95:WNDCLASSEX 構造体の cbWndExtra メンバと cbClsExtra メンバに 40 バイトをより大きな値を指定すると、RegisterClassEx 関数は失敗します。

こんなこと書いてある


415 名前:デフォルトの名無しさん :04/07/24 02:45
色々ありがとうございます。>>411-414
手元に環境がないので涙で枕を濡らすほかないのです。
ちなみに最初書いてたのは以下のようなコード(だった気がする)
WNDCLASSEX wcx = {0};
wcx.cbSize = sizeof(WNDCLASSEX);
wcx.lpfnWndProc = (WNDPROC)WndProc;
wcx.hInstance = GetModuleHandle(0);
wcx.lpszClassName = m_ClassName;
if (!RegisterClassEx(&wcx)) {
DWORD dwError = GetLastError();
return dwError;
}
なんていうかDLL内で不可視のウィンドウを作ってソケットメッセージを何とかしたかった。
MFCのソケットみたいな。


416 名前:デフォルトの名無しさん :04/07/24 08:23
>>415
m_ClassNameの中身は?

417 名前:398 :04/07/24 10:10
>>405-406
そうなんですか。
前は出てなかった気がしたんですが、気のせいだったのですね。
どういう仕組みで出るのかわかりませんが、害がないということで安心しました。
ありがとうございました。

418 名前:399 :04/07/24 19:24
>>416
sprintf(m_ClassName, "ClassNameDaze");

適当な文字列なんです。。。

419 名前:デフォルトの名無しさん :04/07/24 20:45
じゃあ、試しに直接書いてみたら?
wcx.lpszClassName = "ClassNameDaze";

420 名前:デフォルトの名無しさん :04/07/25 00:27
>>415
DLLなら
wcx.hInstance = GetModuleHandle(0);
は違うと思うが。
これだとEXEのハンドルになるよ。

421 名前:デフォルトの名無しさん :04/07/25 10:25
関数がコールされると、returnされた際にどこにreturnするかアドレスを
記憶していると思うのですが、そのアドレスはどこにあるのでしょうか?


422 名前:デフォルトの名無しさん :04/07/25 10:33
スタックとヒーブでぐぐりなされ。

423 名前:マイク ◆yrBrqfF1Ew :04/07/25 10:49
通常はスタックフレームにリターンアドレスがある

//以下未定義なコード

int main()
{
int array[1];
std::cout<<"return address: "<<std::hex<<array[2]<<endl;
}

424 名前:デフォルトの名無しさん :04/07/25 14:21
>>420
それで問題ない

425 名前:399 :04/07/25 23:03
アクセス規制が。。

>>420
とりあえずチェックしてみます。
Win2kなどでは良くてもWin95だと問題が出てしまうのですかね。。。

>>424
私はどうすれば。。

426 名前:399 :04/07/25 23:05
解除されたようだ。

>>420
GetModuleHandle(0);
がダメな場合はDLLMain()でもらえるインスタンスを使用するということですよね?
。。。多分。。。


427 名前:デフォルトの名無しさん :04/07/25 23:34
CListCtrlから派生させてCListCtrlExをつくったのですがこれを
MFCアップウィザードが用意してくれた、CXXXVew(CListViewから派生)に結び付けるには
どうすればいいのかしら?

428 名前:デフォルトの名無しさん :04/07/26 01:25
>>423
array[2]はBPじゃないのかな?
array[3],array[4]あたりのはずだが。


429 名前:mike ◆yrBrqfF1Ew :04/07/26 06:59
ならarray[1]は何がある?

i386
↑low
    [array]        //array[0]
    [saved frame pointer] //array[1]
    [return address]   //array[2]
    [arguments...]
↓high

430 名前:デフォルトの名無しさん :04/07/26 09:31
>>427
できません。CListViewから導出されたクラスにはCListCtrlが結びついていますので
CControlViewから新たに導出してあなたのCListCtrlExを結びつけて
CControlViewをCDocumentとjointしてください
結構面倒ですよ

431 名前:デフォルトの名無しさん :04/07/26 10:22
>>429
ごめん勘違いですた。


432 名前:デフォルトの名無しさん :04/07/26 11:18
初心者なんですが、void mainとint main の違いって何ですか?
あと、
#include<stdio.h>
void main(){
int a;
scanf("%d", &a);
printf("%d\n", a);
}
で実行すると、数値はちゃんと同じように出力されるんですが、
文字は変な数値で出力されてしまいます・・。
文字を出力するにはどのように変えれば良いんでしょうか?

433 名前:デフォルトの名無しさん :04/07/26 11:30
>>432
void main 値を返さないで終了
int main 値を返して終了

scanf("%c",&a);
printf("%c\n",a);

434 名前:デフォルトの名無しさん :04/07/26 12:16
値を返して終了することのメリットは何ですか?

435 名前:デフォルトの名無しさん :04/07/26 12:53
Cスレ行って欲しいな

436 名前:デフォルトの名無しさん :04/07/26 12:57
int main:絶対だれにも文句を言われない。
void main:(特にそのCスレで)規格にないとかなんとかいろいろうるさいのが出てくる。

437 名前:デフォルトの名無しさん :04/07/26 13:21
>>434
UNIXだと,シェルスクリプト(Winのバッチファイルに相当)から,
その値を返すプログラム(Aとしよう)を起動して,
Aが終了したときの返り値をその後のシェルスクリプトの処理で利用するって使い方をする.
Winだと同様にバッチファイルで使えるんでは?
シェルだと,直前に実行したプログラムの返り値は$?で取り出せるけど,
バッチファイルだと何になるの?


438 名前:デフォルトの名無しさん :04/07/26 14:01
>>437
IF ERRORLEVEL n 〜
mainの返り値が n 以上なら〜を実行する。IF NOT ERRORLEVEL 〜 ってのもある。

あるいは他のプログラムの中からならGetProcessExitCode()で取得することもできる。
特にGUIプログラムだとこれしかない。

439 名前:399 :04/07/26 18:09
>>419
ソレダ!

ダメダオレ orz

440 名前:432 :04/07/26 18:22
#include<stdio.h>
void main(){
char a[10];
scanf("%s", a);
printf("%s\n", a);
}
でやったら出来ました。

441 名前:デフォルトの名無しさん :04/07/26 19:02
>>440
じゃあぜひ10文字以上入力してみよう


442 名前:デフォルトの名無しさん :04/07/26 19:21
これ以上引っ張るなボケ

443 名前:デフォルトの名無しさん :04/07/26 22:17
%10s

444 名前:デフォルトの名無しさん :04/07/27 00:10
ここってヘビーな内容はついて行けない人が多いんですねw

445 名前:デフォルトの名無しさん :04/07/27 00:11
オレオレ

446 名前:デフォルトの名無しさん :04/07/27 01:00
リソースエディタの事について、聞きたいんですけど
visualC++でリソースをヴィジュアル的に編集する方法は
分かったのですが、スクリプト的に編集するにはどうすればいいですか
検索で色々調べてみたんですが、詳しく手順が載ってる所が無いです。
作ったリソースをスクリプトで見たいです。
BEGIN ~~~~~~
END
ていう風な。
言い方おかしい所あるかも知れませんが、よろしくです。

447 名前:デフォルトの名無しさん :04/07/27 01:37
>>446
普通にテキストエディタで編集すればいいのでは?

448 名前:デフォルトの名無しさん :04/07/27 03:04
xxx.rc というファイルが作られてないですか?

449 名前:デフォルトの名無しさん :04/07/27 05:36
ホントですね。。。
単にテキストエディタで見れば良かったんだ。
何故そこに気が付かなかったのか。
ありがとうございました。
あえてVisualC++でストリプト風な表示がされないのは
やっぱりビジュアル的なこだわりなんでしょうかね
そんな編集も必要無さそうだし。(初心者だからそう思うだけかも)

450 名前:447 :04/07/27 07:59
>>449
VC6でも確か開けたはず。VS.NETはファイル名右クリックでメニューで選べたし。
尤も、どちらの場合でもダイアログエディタなどのヴィジュアルなエディタとは共存できない。
#どっちかで開こうとすると閉じられてしまう。

451 名前:デフォルトの名無しさん :04/07/28 02:57
質問です。
C++プログラムでnewを利用してメモリを取得しているのですが、
そのメモリ領域を内容はそのまま、後で広げる事は出来るのでしょうか?


452 名前:デフォルトの名無しさん :04/07/28 03:06
unn

453 名前:デフォルトの名無しさん :04/07/28 03:06
一応こんなのもあるが
ttp://www9.plala.or.jp/sgwr-t/lib/realloc.html


454 名前:デフォルトの名無しさん :04/07/28 03:08
realloc()の存在は知ってますが・・・mallocじゃなくても大丈夫なんですか?


455 名前:デフォルトの名無しさん :04/07/28 03:17
>>451
予め広めに取っておくしかないかもね
どういう用途でそうしたいんでしょうか?


456 名前:デフォルトの名無しさん :04/07/28 03:21
構造体を使用する数の分だけメモリを確保しようとしています。
newで無理ならmallocに書き直そうと思います;

457 名前:デフォルトの名無しさん :04/07/28 03:28
>>456
newを再定義してる人もいるようです
ttp://jbbs.shitaraba.com/computer/bbs/read.cgi?BBS=5651&KEY=1048738265&START=43&END=63&NOFIRST=TRUE


458 名前:デフォルトの名無しさん :04/07/28 03:28
C++と
Visual C++.NETは
実は全くの別言語だったりするんですか?

459 名前:デフォルトの名無しさん :04/07/28 03:31
C++は総称で
Visual C++.NETは数多くあるC++の実装の一部では?

460 名前:デフォルトの名無しさん :04/07/28 03:32
newの再定義も考えましたが、結構構造体の数が増える可能性があるのでやめときました。
検索してると標準テンプレートライブラリ関連の情報がでてきたのでベクトルあたりを使って
なんとかできないか調べてみます。(それで無理ならmallocで・・・)

ご協力ありがとうございました。

461 名前:デフォルトの名無しさん :04/07/28 03:35
C++は言語の事でVisual 〜 というのは統合開発環境の事だと思います。
基本的な構文は変わりませんが.NETが追加した関数とかクラスがあったりします。

462 名前:デフォルトの名無しさん :04/07/28 03:35
libg++ の string クラスとか vector クラスの実装見ると、参考になるかも

463 名前:デフォルトの名無しさん :04/07/28 08:05
つーか、vectorで書き直せばことが足りるんで内科医?

464 名前:Visual C++初心者です :04/07/28 14:30
すいません、初心者なんですけど、質問させてください><
Visual C++でプログラムのコンパイルをした時に、
『error C2146: 構文エラー : ';' が、識別子 'lpDD' の前に必要です。』っていうエラーが出るんです。
きっとDirectDrawが関係しているエラーだと思うんですけど、(使っていないプログラムはコンパイルできました。)
何が原因なんでしょうか・・・? 色々試してるんですけど、分からなくて;;
的外れな質問だったらごめんなさい;

465 名前:デフォルトの名無しさん :04/07/28 15:01
>>464
ヘッダはinculudeしたか?

というかスレ違いな気がするが・・・

466 名前:デフォルトの名無しさん :04/07/28 15:02
ある関数が
void func() throw(runtime_error);
みたいに定義されている時に、呼び出し側でキャッチしなくても特にエラーにならないのですが、そういうものですか?
JAVAみたいに呼び出し側にキャッチを要求することはできませんか?
よろしくお願いします。

467 名前:465 :04/07/28 15:02
× : inculude
○ : include

468 名前:デフォルトの名無しさん :04/07/28 17:39
unn

469 名前:デフォルトの名無しさん :04/07/28 18:26
ListView のソートとか背景の色をつけることが
できる拡張したListViewってない?

オーナードローがよくわからん

470 名前:VisualC++初心者です :04/07/28 18:28
えっと、デスクトップパソコンの方ではコンパイルできたんです。(同じソースファイルです。)
今同じプログラムをノートパソコンに移動させようとしてるんですけど、
そっちで上に書いたエラーが出ちゃって・・・><;
スレ違いでした?; ごめんなさい;;

471 名前:デフォルトの名無しさん :04/07/28 18:36
>>470
ノートの方にSDKはあるのか?
もしくは、パスが通ってないとか

472 名前:デフォルトの名無しさん :04/07/28 18:42
>469
そういう疑問はcodeguruかcodeprojectに行くとだいたい解決する。

473 名前:デフォルトの名無しさん :04/07/28 18:58
470は女

474 名前:デフォルトの名無しさん :04/07/28 18:59
>>472
ついでに英語もわからん
日本語であるとこしりませんか?

475 名前:デフォルトの名無しさん :04/07/28 19:18
しりません

476 名前:458 :04/07/28 19:30
>>459,461
そうでしたか。ありがとうございます。じゃ、同じってことで。

477 名前:デフォルトの名無しさん :04/07/28 19:33
>>464
念のためソース貼っておけば?

478 名前:デフォルトの名無しさん :04/07/28 19:40
>474
http://www.seg.co.jp/sss/
ほい。

479 名前:デフォルトの名無しさん :04/07/28 20:10
宣言した定数に色つけるってできないんですか?

480 名前:デフォルトの名無しさん :04/07/28 20:43
>>479
[定数]++;
若干色を付けてみました
とか?

481 名前:デフォルトの名無しさん :04/07/28 21:17
>>479
エディタオプションだ


482 名前:466 :04/07/28 22:07
どなたか>>466わかる方いませんか?

483 名前:デフォルトの名無しさん :04/07/28 22:09
>>482
そういうものです

484 名前:デフォルトの名無しさん :04/07/28 22:21
1行エディットコントロールを作成したのですが、
入力してRETURNキーを押すたびに警告音がします。
うるさいので、無くす方法はないでしょうか?


485 名前:デフォルトの名無しさん :04/07/28 22:24
マルチキター!

486 名前:デフォルトの名無しさん :04/07/28 23:00
error LNK2019: 未解決の外部シンボル __imp__mciGetErrorStringA@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
error LNK2019: 未解決の外部シンボル __imp__mciSendCommandA@16 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
fatal error LNK1120: 外部参照 2 が未解決です。

すいません、MCI APIを使って音楽を流そうとしているのですが、
何度やってもこの3つのエラーがでます。どういった原因が考えられるのでしょうか?
そもそも「外部参照2が未解決」「未解決の外部シンボル」といった
エラーはよくみるのですがどういうことなのでしょうか?

487 名前:デフォルトの名無しさん :04/07/28 23:05
>>486
自分もよくわからないけど、クラスのメンバ関数なんかを、
宣言だけして関数本体を書かなかったりすると出る。
どっかでプロトタイプ宣言だけして、処理を記述し忘れてない?


488 名前:デフォルトの名無しさん :04/07/28 23:12
デバックについてサンプルプログラムなどで詳しく解説してある本、サイト等
を教えてください。

489 名前:デフォルトの名無しさん :04/07/28 23:41
>>486
>>488
ああ、あとリンクエラーの場合もあり得るか。。。
LNK2019、LNK1120に関してGoogleで検索してみては?


490 名前:デフォルトの名無しさん :04/07/29 00:08
winmm.lib

491 名前:デフォルトの名無しさん :04/07/29 00:24
>>490
インポートライブラリをプロジェクトに参加させる方法すらわかりません・・。
どうやるんでしょうか?

492 名前:デフォルトの名無しさん :04/07/29 00:26
最近圧縮アルゴリズムとやらに興味が出てきたので圧縮ソフトを作ってみようと思っているのですが、
圧縮プログラムの書き方もどこから着手するべきなのかもさっぱりです。
初心者でもその手のことがわかりやすく説明してある本やHP等がありましたら教えてください。


493 名前:デフォルトの名無しさん :04/07/29 00:43
ツールバーのアイコンの横に文字列を添えたいのですが、
全てのボタンがTB_ADDSTRINGで一番最初に割り当てた
文字列(インデックス0)のみで表示されてしまいます。
例えば、
char szBuf[10];
strncpy(szBuf, "ボタン1", sizeof(szBuf) - 1);
tbb[0].iString = (int)SendMessage(hToolBar, TB_ADDSTRING, NULL, (LPARAM)(LPSTR)szBuf);
strncpy(szBuf, "ボタン2", sizeof(szBuf) - 1);
tbb[1].iString = (int)SendMessage(hToolBar, TB_ADDSTRING, NULL, (LPARAM)(LPSTR)szBuf);
strncpy(szBuf, "ボタン3", sizeof(szBuf) - 1);
tbb[2].iString = (int)SendMessage(hToolBar, TB_ADDSTRING, NULL, (LPARAM)(LPSTR)szBuf);
とした時、全てのボタンの文字列部分が「ボタン1」となってしまいます。
SendMessage関数は、何れも正しい値を返しています。
各々のボタンの文字列を正しく表示させるには、どうすれば良いでしょうか?

494 名前:デフォルトの名無しさん :04/07/29 00:44
>>492
http://www.zeosync.com/

495 名前:492 :04/07/29 01:03
>>494
サーバーが見つかりません_| ̄|○

496 名前:デフォルトの名無しさん :04/07/29 01:29
>>469
まさしくそういうクラスを昨日書いたよ。
カラムヘッダクリックでソート、一行ごとに背景色をつけるって仕様。

497 名前:デフォルトの名無しさん :04/07/29 06:06
>>493 はスルーですか?


498 名前:デフォルトの名無しさん :04/07/29 07:39
>>497
はい

499 名前:デフォルトの名無しさん :04/07/29 10:34
>>469
昔 mzListViewつーのがあったよ


500 名前:デフォルトの名無しさん :04/07/29 12:38
>>490
#pragma comment(lib,"winmm.lib")


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