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


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

★初心者にVisual C++を教えるスレ★ Part18
251 名前:デフォルトの名無しさん :2005/04/25(月) 14:17:39
楕円の画像処理をする場合、
1画素1画素処理していく以外に何か方法とかありますか?

252 名前:デフォルトの名無しさん :2005/04/25(月) 14:18:25
>>251
LineTo

253 名前:デフォルトの名無しさん :2005/04/25(月) 16:49:59
>>249
自分がわからんからって人のせいにするなよ

254 名前:デフォルトの名無しさん :2005/04/25(月) 17:04:37
質問です。
pgm形式の画像ファイルを読み込むので、一番簡単な方法ってなんでしょうか?

255 名前:デフォルトの名無しさん :2005/04/25(月) 17:12:11
pgm形式って何?

256 名前:デフォルトの名無しさん :2005/04/25(月) 17:15:41
スレッドについて質問があります。
マニュアル等では、各スレッドの処理がタイムスライスに従って
移行しているようですが、一時的にプリエンプションを禁止して、
その後解除するような事はできるのでしょうか?

257 名前:デフォルトの名無しさん :2005/04/25(月) 17:18:23
あんまりマイナーな話題は、他の初心者の役に立つと思えないな。

258 名前:デフォルトの名無しさん :2005/04/25(月) 17:28:41
>>254
Unix系のライブラリを使うのがいちばん簡単。
まぁ、自分で書いても大したことないけどね。
詳しくはVCスレではないC/C++初心者スレか画像スレにでも。

>>255
鸚鵡返しに質問しないで少しは自分で調べたら?

259 名前:デフォルトの名無しさん :2005/04/25(月) 18:00:00
>>254
pgmだけ読み込むなら自前で処理したほうがいいね。
ライブラリを使うという手もあるけど、
ライブラリの使い方を調べてる時間があったら充分自分で実装できる。
もし使うならSusie Plug-inあたりがお勧めだね。
単純な形式だから、UNIX系のライブラリがお勧めできないのはわかるよね?

>>255
はるか昔の画像形式。
おじさんが若い頃はpgm使ってたんだよ。
リソースの代わりにソースに画像を埋め込んだりするときに使える。
その代わりものすごく効率悪い。
今ネイティブ形式として使ってたら池沼だね。

260 名前:デフォルトの名無しさん :2005/04/25(月) 18:08:46
マルチメディアタイマーと普通のタイマーの違いは何ですか?

261 名前:デフォルトの名無しさん :2005/04/25(月) 18:22:06
>>260
あなたにとっての普通のタイマーとは?

262 名前:デフォルトの名無しさん :2005/04/25(月) 18:27:24
普通のタイマーの誤差はおよそ0.06秒(厳密にはOSに依存)

263 名前:デフォルトの名無しさん :2005/04/25(月) 18:33:05
>>259
もしや、xpmと勘違いしていませんか?
つーか、pgmをソースに埋め込んだら只の阿呆ですな。
今でも2次元のべたデータにpgmのヘッダだけ付け足してxvで表示するエンジニアは目の前にごろごろしているんだけど、
unixも使えないロートルには荷が重い話かな?

264 名前:デフォルトの名無しさん :2005/04/25(月) 18:39:45
スレ違い

265 名前:デフォルトの名無しさん :2005/04/25(月) 18:55:22
>>262
ありがざいました

266 名前:デフォルトの名無しさん :2005/04/25(月) 20:40:49
>250
つSetThreadAffinityMask

>256
スレッドのプライオリティを最大まで上げれば、他に対抗するスレッドが
現れない限り、似たような効果は得られるとおもう。CPUが複数あるなら
意味なしだけど。

267 名前:198 :2005/04/25(月) 20:47:43
>>198
>>219
どなたか教えて貰えませんか?
>>219の設定にしたら通常は
日本語ヘルプが優先的に表示されるのでしょうか?

268 名前:デフォルトの名無しさん :2005/04/25(月) 21:18:17
>>267
再インストール
ここってパソコン初心者板だっけ?

269 名前:デフォルトの名無しさん :2005/04/26(火) 00:42:50
>>253
ここは初心者スレだぞ。
勿体ぶらずに説明しろよ。

270 名前:デフォルトの名無しさん :2005/04/26(火) 02:04:14
C++の基礎を勉強してからウィンドウズプログラミングをやろうと思っているのですが、
いきなりMFCから入っても大丈夫でしょうか?
MFCの方がWin32 APIだけよりも本格的っぽいので、いきなりこちらからやろうと思っているのです。

271 名前:デフォルトの名無しさん :2005/04/26(火) 02:42:37
とりあえずやってみろよ。


272 名前:デフォルトの名無しさん :2005/04/26(火) 03:15:32
SDKで++のライブラリを使いたいのですが(CFontなど)
インクルードファイルやリンクライブラリは何を指定すればいいのでしょうか?
その他注意点があったら教えて草代。

273 名前:デフォルトの名無しさん :2005/04/26(火) 05:30:37
MSDNのCFont見れば書いてあるんだがよ・・・

274 名前:デフォルトの名無しさん :2005/04/26(火) 10:39:47
基本クラスから継承してるから
それだけあってもダメかもしれんな

275 名前:デフォルトの名無しさん :2005/04/26(火) 11:56:15
MFC自体の初期化も必要かもしれんな。

276 名前:デフォルトの名無しさん :2005/04/26(火) 12:14:29
VS2003でクラスライブラリを作成して、「hello」というプロジェクトを作りました。

hello.cppのソースに

#include <ATLComTime.h>
を書き加えるとリンクエラーになるのですがどうしたらいいですか?
heloo.cppのソースは

// これは メイン DLL ファイルです。
#include "stdafx.h"
#include "hello.h"
#include <ATLComTime.h>

だけです。
初心者ですいませんがどなたか教えていただけないでしょうか?

277 名前:デフォルトの名無しさん :2005/04/26(火) 12:41:53
ATL使うならライブラリがいるんじゃないか?
ATLは初心者向けじゃないと思うから
それ以上はコメントしません。

278 名前:デフォルトの名無しさん :2005/04/26(火) 12:53:15
そうなんですか・・・。
サンプルソースがWindowアプリだったので内部処理の部分をDLL化してみたかったんです。
どうもありがとうございます。

279 名前:デフォルトの名無しさん :2005/04/26(火) 13:49:57
>>270
僕も君と同じような道を歩んだよ。C++を勉強して、MFCに入っていった。
Windowsプログラミングを習得するための入り口としては適してるかもしれない。
(というよりこれぐらいしかない?ATLはさすがに初心者は難しいだろうし)
ただ、int main(){}で始まるプログラミングしか知らない人は戸惑うと思う。
なんせ根幹となるループ構造が隠蔽されてるからね。フレームワークという概念を習得しよう。
MFCをある程度理解しWindowsMESSAGEとかも理解できてきたら、WIndowsがどのように成り立っているかが
ほんのすこし垣間見えるかも。

最終的には、MFCのダメさ加減を認識し始めたら一人前だ。

280 名前:デフォルトの名無しさん :2005/04/26(火) 13:58:53
>>218
static linkの場合は必要なものだけ選別してリンクするから
あの馬鹿でかいDLLの容量だけ増えるわけじゃないよ。

とはいえ、MFCはどういうわけかちょこっとstatic linkするだけでも、意外に容量的コストが
発生するという話だ。

281 名前:デフォルトの名無しさん :2005/04/26(火) 17:09:42
VC.NETで完全自作のエディタを作ろうと思ってます。
そこで、文字の色や文字数やデータ構造などを自由に決めるために、
CEditViewを使わずCViewで作ろうと思ってるのですが、
CViewにて日本語入力を受け付ける方法がわかりません。
今ひとつメッセージに関してわかっていない自分ですが、
どのように入力を受け付ければいいのか、
どなたか教えていただけませんでしょうか。
よろしくお願いいたします。

282 名前:デフォルトの名無しさん :2005/04/26(火) 17:13:22
>>281
ttp://home.h07.itscom.net/buruturi/VCTIPS_008.html
ちなみに(3)-(F)の直後でreturn 0;すれば(4)を書く必要はなくなる。

283 名前:デフォルトの名無しさん :2005/04/26(火) 17:48:39
> CViewで作ろうと思ってるのですが

完全自作じゃないじゃん

284 名前:281 :2005/04/26(火) 17:53:18
>282
ありがとうございます。
ただ、早速試してみたのですが、どうもうまく行きません。
自分がメッセージ処理に疎いからだと思うのですが…。

-- CMyView.hの中身の一部 --
class CMyView : public CWnd {
protected:
 afx_msg void OnPaint();
 DECLARE_MESSAGE_MAP()
public:
 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 afx_msg void OnDestroy();
 afx_msg void OnSize(UINT nType, int cx, int cy);
 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
 /* (イ)ここに何を書けばいいのか */
}
(続く)


285 名前:続き :2005/04/26(火) 17:53:43
-- CMyView.cppの中身の一部 --
BEGIN_MESSAGE_MAP(CSuperLView, CWnd)
 ON_WM_PAINT()
 ON_WM_CREATE()
 ON_WM_DESTROY()
 ON_WM_SIZE()
 ON_WM_ERASEBKGND()
 ON_WM_KEYDOWN()
 /* (ロ)ここに何を書けばいいのか */
END_MESSAGE_MAP()

以上、(イ)と(ロ)の位置に何を書けばいいのかわかりません。それぞれに
(イ)afx_msg LRESULT OnIMEStartComposition(WPARAM wParam, LPARAM lParam);
(ロ)ON_WM_IME_STARTCOMPOSITION
を書いても「ON_WM_IME_STARTCOMPOSITIONが定義されてない」みたいな
エラーが出てきます。他に何をすればいいのでしょうか?

よろしくお願いします。

286 名前:281 :2005/04/26(火) 17:56:20
>283
そうですね。すいません。
自分が使いやすいエディタを作りたいだけです^^

287 名前:281 :2005/04/26(火) 18:00:37
>上×2
2行目、CSuperLViewではなくCMyViewです。すいません。
実際はCSuperLViewという名前にしてるだけです。

288 名前:デフォルトの名無しさん :2005/04/26(火) 18:02:30
なんつーか、免許取っていきなりレースに出るようなもんだな。

289 名前:デフォルトの名無しさん :2005/04/26(火) 19:52:29
// inside the class declaration
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);

BEGIN_MESSAGE_MAP(CMyWnd, CMyParentWndClass)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()

これを真似すればできる

290 名前:281 :2005/04/26(火) 21:44:35
>289
できました! 感激です!
どうもありがとうございました!
頑張って免許取りたてでレース出てみます!

291 名前:デフォルトの名無しさん :2005/04/26(火) 23:01:14
>>232
メモリが無駄になる。
DLLが同じアドレスにロードされれば、同じ物理メモリを共有するが、
スタティックリンクしてしまうと、そういうことができない。

>>248
スレッドにうまく処理を分けるのはプログラマの仕事。
どのスレッドをどのCPUでいつ走らせるかはOSの仕事。

>>250
嘘いうなよ。
Win32 APIのSetThreadAffinityMaskで指定できる。

>>256
普通のユーザモードで走るプロセスは、
プリエンプションを禁止して走ることはできない。
いついかなるタイミングでプリエンプションが発生しても良いようにコーディングしてね。


292 名前:デフォルトの名無しさん :2005/04/26(火) 23:57:07
>>291
最近のPCはメモリの容量が多いので、スタティックリンクしたときの
メリットの方が多いですね。

293 名前:デフォルトの名無しさん :2005/04/26(火) 23:58:44
いやメリットは特にないだろ

294 名前:デフォルトの名無しさん :2005/04/27(水) 00:12:55
ロード時間の短縮と言ってみるテスト

295 名前:デフォルトの名無しさん :2005/04/27(水) 00:44:40
DLL hellを避けられるのは大きなメリット

296 名前:デフォルトの名無しさん :2005/04/27(水) 00:53:34
・自作DLLのほとんどがPreferredBASE=1000:0000で
配布されて居る件について。
・MicrosoftはSxsを推奨している件について。

297 名前:デフォルトの名無しさん :2005/04/27(水) 03:18:45
>普通のユーザモードで走るプロセスは、
>プリエンプションを禁止して走ることはできない。
>いついかなるタイミングでプリエンプションが発生しても良いようにコーディングしてね。

これってasmで割り込み禁止にしても?

298 名前:デフォルトの名無しさん :2005/04/27(水) 03:24:42
普通、ユーザープログラムが割り込みフラグ操作したら例外起きるよ(´・ω・`)

299 名前:デフォルトの名無しさん :2005/04/27(水) 04:37:32
DOS時代のまま時間が止まっているプログラマは、
ちょっとはマルチタスクOSについて勉強してよ。

そういうプログラマが書いたプログラムって悲惨なんだよね。
空ループして何かを待ったりして、メッセージポンプ止めてるのに、
イベント来ないとか文句言ったりさ。

>>296
MFCのDLLの話とは関係ないじゃん。

自作DLLをたくさんのプロセスで共有することってあるかな。
MSVCRTとかMFCとかならともかくさ。

するとしても、そいつらはみな同じ0x10000000にロードされるだろうから、共有できるでしょ。

300 名前:デフォルトの名無しさん :2005/04/27(水) 04:39:12
もちろん、DLLのロードアドレスがバッティングしたら、そりゃズレるけど、
そういう自作DLLを多数使うアプリってあるのかな。

もしDLLとEXEを同じところで作っていれば、
デバッグ時にVC++が、
バッティングしたからズラしたぞゴルァ
って言ってくるから、気がつくでしょ。


301 名前:デフォルトの名無しさん :2005/04/27(水) 08:46:03
ヲタ話は他所でやってくれよ

302 名前:デフォルトの名無しさん :2005/04/27(水) 08:50:59
#if !defined(___XXXXX)
#define ___XXXXX

#endif

の代わりに

#if _MSC_VER > 1000
#pragma once
#endif

を使う利点、欠点を教えてください

303 名前:デフォルトの名無しさん :2005/04/27(水) 09:01:38
それは初心者にとって非常に重要な問題なんだろうか?
普通の人にとってはどうでもいい問題にしか思えんな

304 名前:デフォルトの名無しさん :2005/04/27(水) 09:10:30
>>302
既出。
・利点
ソースを全部評価しないで済む。
・欠点
(当然だが)他のコンパイラでは使えない。

305 名前:デフォルトの名無しさん :2005/04/27(水) 12:31:25
>(当然だが)他のコンパイラでは使えない。

主要なコンパイラはサポートしてるらしいよ。

306 名前:デフォルトの名無しさん :2005/04/27(水) 13:41:20
>>305
主要なコンパイラでは_MSC_VERが定義されているの?
それは不便だ……

307 名前:デフォルトの名無しさん :2005/04/27(水) 14:52:42
Xp+VC7.1(.NET2003)です。
XP風のビジュアルスタイルにしたくて調べているのですが
「ButtonコントロールのFlatStyleプロパティをSystemに設定して・・・」
とあります。
ところが、プロパティ設定の画面には"Flat"はあるのですが"FlasStyle"はありません。
何か根本的に間違っているのでしょうか?
よろしくお願いします。


308 名前:デフォルトの名無しさん :2005/04/27(水) 14:55:30
XPスタイルにしたいなら民主党のマニュフェストを参考にしろ

309 名前:デフォルトの名無しさん :2005/04/27(水) 15:18:01
>>308
綴りが違う

310 名前:デフォルトの名無しさん :2005/04/27(水) 16:04:10
XP風のビジュアルスタイルにしたいんだろうか?
ボタンをフラットにしたいんだろうか?
たまたま見つけたサイトに書いてあることが真実か知りたいんだろうか?
まずそこをはっきりしろ

311 名前:デフォルトの名無しさん :2005/04/27(水) 16:14:25
質問です。環境は XP、VC++ 6.0 です。

MFC で作ったアプリで、アイコンの設定で躓いています。
サイズ 32×32、24 bit の bmp の拡張子を ico に変えたものを用意し、
リソース IDB_ICON32 として取り込みました。

C○○App クラスの InitInstance において、
 HICON icon = LoadIcon( IDB_ICON32 ); // A
 m_pMainWnd->SetIcon(icon, true);     // B
として実行すると、起動中に B の行でアプリが強制終了されました。

24bit の bmp をリソースとして取り込むことはできないのでしょうか?
またその場合、リソースではなく外部からアイコンを取り込むにはどうすればいいのでしょうか?

よろしくお願いします。


312 名前:307 :2005/04/27(水) 16:21:58
現在、フラットな画面をXP風のビジュアルスタイルにしたいんです。
プロジェクトはダイアログベースで作成しています。

313 名前:デフォルトの名無しさん :2005/04/27(水) 16:23:32
おま、そりゃアイコンじゃなくてビットマップだろうが
ビットマップをLoadIconしてどうすんだよ・・・

そのビットマップデータをペイントか他の適当なペイントツールで開いて全体をCtrl+Cでコピーして、
VCの新規リソースでICON作ってそこにペーストしる

314 名前:デフォルトの名無しさん :2005/04/27(水) 17:33:25
うーん……
8bit のビットマップをペイントで開いてコピー、
リソース作ってペーストして ico ファイルを作ったのですが、
どうしても再度読み込むと、パレット情報がばらばらになってしまいます。
(色がめちゃくちゃになる)

24->8 bit への減色は、ペイントで行なっています。
原因の見当がつきません。よろしくお願いします。

315 名前:311=314 :2005/04/27(水) 17:33:59
名前を入れ忘れました、申し訳ないです。

316 名前:デフォルトの名無しさん :2005/04/27(水) 17:47:53
・普通、IDB_はビットマップに付ける名前。アイコンならIDI_。

・ペイントの原色の性能はまったくのポンコツ。
JPEGとかをGIFで保存してみたら一目瞭然。

317 名前:311=314 :2005/04/27(水) 18:04:36
>>316
Photoshop で減色する際、使用中の入りを全て割り当てる、
Windows(システム)などが色々な種類がありますので、
アイコンなどに使われるパレットはもしかして固定なのかと思い、
もしそうなら Windows 付属のペイントならシステムにあった減色を
してくれるのでは?と思い、あえてこの方法をとりました。
間違った判断だったようですが……。

>>313 でお教えいただいた方法で IDI_*** として取り込むことはできました。
ところが、生成された ico ファイルは、パレットがむちゃくちゃでした。

むむー

318 名前:デフォルトの名無しさん :2005/04/27(水) 18:08:19
>>317
元々8bitで書いてないうえに、ペイントで原色してるんじゃそれはしょうがない
もっとちゃんとしたエディター使うべき

319 名前:311=314 :2005/04/27(水) 18:09:10
>>318
なるほど、アイコン作成用のフリーソフトを探してみます。
ありがとうございました。

320 名前:デフォルトの名無しさん :2005/04/27(水) 18:21:33
あぁ、字が違う
原色→減色

321 名前:デフォルトの名無しさん :2005/04/27(水) 19:17:59
指定したフォルダの中に入っているファイル・フォルダの情報(ファイル名やサイズなど)を全て取得するにはどうすればよいのでしょうか?

322 名前:デフォルトの名無しさん :2005/04/27(水) 19:31:19
>>301
けっこう大切な話なんだけどな。

初心者にありがちなのが、
肝心なことをスルーしてしまうこと。

トレースに何か出ていても無視したりするんだよね。

323 名前:デフォルトの名無しさん :2005/04/27(水) 19:32:16
FindFirstFile
FindNextFile
FindClose



324 名前:デフォルトの名無しさん :2005/04/27(水) 20:00:12
Winコンソールで
int main(int argc,char** argv)の引数を入力して
デバッグはどうやってやるんですか

325 名前:デフォルトの名無しさん :2005/04/27(水) 20:53:02
gdb hoge a1 a2 a3

326 名前:デフォルトの名無しさん :2005/04/27(水) 21:53:05
>>324
VCでデバッグすればいいじゃない

327 名前:デフォルトの名無しさん :2005/04/28(木) 16:45:17
デバッガで、あるポインタから順にいくつかの中身を
表示するには、ウォッチでどう入力すればよいのでせうか??

328 名前:デフォルトの名無しさん :2005/04/28(木) 16:58:57
ポインタ[0]
ポインタ[1]
...

329 名前:327 :2005/04/28(木) 17:53:06
まとめて表示するには?
カウンタ変数みたいにできない?

330 名前:デフォルトの名無しさん :2005/04/28(木) 18:00:16
質問です。環境は XP、VC++ 6.0 です。
MFC を利用してプログラムを行なってます。

ALT キーの入力の監視方法でつまづいています。

>error C2065: 'VK_ALT' : 定義されていない識別子です。
ALT キーの入力を見たいのですが、VK_ALT が定義されていないと言われました。
VK_RETURN や VK_ESC などは定義されています。
VK_A、VK_B、…も同様にエラーが出ますが、'A'、'B'、…で代用しています。

ご助言をお願いします。

331 名前:デフォルトの名無しさん :2005/04/28(木) 18:03:56
ms-help://MS.MSDNQTR.2003FEB.1041/winui/winui/windowsuserinterface/userinput/VirtualKeyCodes.htm
VK_MENU (12)
ALT key

332 名前:330 :2005/04/28(木) 18:16:23
>>331
申し訳ございません、そのアドレスの意味が分かりませんでした……。
ヘルプは持っています。(MSDN ライブラリ MicrosoftR Visual StudioTM6.0 リリース)


333 名前:デフォルトの名無しさん :2005/04/28(木) 18:16:25
VC++6.0使ってます。
.NET2002持ってますが、将来的にはそっちに乗り換えたほうがいいでしょうか。
かなり使い勝手が違うようにも思えますが、
何か決定的に違うところってありますか?

334 名前:デフォルトの名無しさん :2005/04/28(木) 18:29:14
>>332
アドレスの下に書いてある2行がお前は読めんのか

335 名前:デフォルトの名無しさん :2005/04/28(木) 18:32:04
>>333
プロジェクトを新規作成するとき、
プロジェクト名と同じ名前のフォルダしか作れない。
例えば、プロジェクト名を毎回同じ(Hogeとか)にして、
フォルダ名に日付を入れる(Hoge20050428)ような使い方がしにくい。

336 名前:デフォルトの名無しさん :2005/04/28(木) 19:11:31
すいません
演算でパイを使いたいのですが、
どうやって指定するんですか?
paiとかでいいんでしたっけ?

くだらない質問かもしれませんが、緊急なのでお願いします。

337 名前:デフォルトの名無しさん :2005/04/28(木) 19:13:04
自分で定数定義すれ

338 名前:デフォルトの名無しさん :2005/04/28(木) 19:13:05
>>336
スレ違い

339 名前:デフォルトの名無しさん :2005/04/28(木) 19:16:01
すれ違いですかね?
まあ自己解決しました。
どうもです。

340 名前:デフォルトの名無しさん :2005/04/28(木) 19:26:54
#define _USE_MATH_DEFINES
#include <math.h>

M_PI

341 名前:デフォルトの名無しさん :2005/04/28(木) 19:29:32
もっぱい

342 名前:デフォルトの名無しさん :2005/04/28(木) 19:39:10
#define PI 3

343 名前:デフォルトの名無しさん :2005/04/28(木) 19:42:17
ネットで検索もしましたがいまいち分かりませんでした…
C言語の勉強をしたいのですが、visual C++以外に良いソフトはないのでしょうか?
また、現在その6.0が最新のようですが4.0がとても安かったので買おうか悩んでいます。
6.0に比べて機能に致命的な点はあるのでしょうか?OSはXP SP2です。

344 名前:デフォルトの名無しさん :2005/04/28(木) 19:48:16
C言語の勉強なら入門書の付録についてる無料コンパイラでいいかも

345 名前:343 :2005/04/28(木) 19:57:41
あ、説明不足ですみません^^;
一応大学の情報工学部に入ったので、
将来的には割と難しいことができるようになりたいという前提です。
でも6.0を買うまでの金銭的余裕がないもので…よろしくお願いします。

346 名前:デフォルトの名無しさん :2005/04/28(木) 20:00:28
学生なら安く買えるだろ

347 名前:デフォルトの名無しさん :2005/04/28(木) 20:02:47
激安で買えるVisual Stdio.NET theSpoke Disc.9
http://pc8.2ch.net/test/read.cgi/tech/1103381010/

学生認証が必要だけど、5000円以下で買えるtheSpokeがいいと思う。

348 名前:デフォルトの名無しさん :2005/04/28(木) 20:03:50
情報工学部なら学校で聞けよ
アホか

349 名前:デフォルトの名無しさん :2005/04/28(木) 20:42:06
>>329
表示のために構造体でも定義してキャストしたらどうだろう。

>>343
情報工学の学生さんなら、とりあえずLinux入れてgccでいんじゃない?

350 名前:327,329 :2005/04/28(木) 20:48:03
スレ違いじゃない質問ですが、答えてもらえない

351 名前:デフォルトの名無しさん :2005/04/28(木) 20:52:19
配列のデータなんて、アドレス取ってメモリビューアで見てるからウォッチの式は知らんなぁ

352 名前:デフォルトの名無しさん :2005/04/28(木) 20:53:18
>>350
>>349が答えてくれてるじゃないか

ていうかアドレス指定してメモリヲッチしろよ

353 名前:デフォルトの名無しさん :2005/04/28(木) 20:56:54
すいません、VC++スタンダード版とVSプロフェッショナル版は、C++を使う上でどのような違いがあるのですか?
スタンダード版で開発したアプリケーションはシェアウェア公開する事が可能ですか?
当方、学生ではないので、どちらを買おうか迷っています。(pro版はあまりにも高いためスタンダードで妥協しようかと)

354 名前:デフォルトの名無しさん :2005/04/28(木) 21:20:32
>>353
高いやつは大規模なアプリの開発に向いてる。(複数人で開発するとか)
個人で小さいプログラム作るなら無料版でじゅうぶん
シェアウェア公開も可

355 名前:デフォルトの名無しさん :2005/04/28(木) 21:33:33
c++より誘導されて来ました。

new演算子を使い終了時にリークしていた時、
_CrtSetDbgFlagで正しく行番号をアウトプットに吐かせるには
どうしたら良いでしょうか
マクロで対応させれたと思うのですが、忘れてしまいまして、、。
宜しくお願いします
(´・ω・`)

356 名前:デフォルトの名無しさん :2005/04/28(木) 21:39:06
ここ初心者スレなんだけど

357 名前:353 :2005/04/28(木) 21:55:35
>>354
無料版って事はVisual Studio 2005 Expressですか?
どうせなら製品版を使いたいんですが、スタンダードとプロフェッショナルとExpressの違いを教えてください。

358 名前:デフォルトの名無しさん :2005/04/28(木) 21:56:52
>>357
MSのサイト行け

359 名前:デフォルトの名無しさん :2005/04/28(木) 22:00:18
すみませんプログラムとは違うんですけど
バラバラにかかれているプログラムをショートカットで直す
のってどうやります?
たしかコントロール+オールで全部指定して
なにかするとおもったのですが

360 名前:デフォルトの名無しさん :2005/04/28(木) 22:05:50
なぜWindows板で聞かないのかと思った春

361 名前:デフォルトの名無しさん :2005/04/28(木) 22:10:12
>>359
質問が分かりません。

362 名前:355 :2005/04/28(木) 22:11:07
二度目のスレ違いをしてしまったようです
吊ってきます
(つД`)

363 名前:デフォルトの名無しさん :2005/04/28(木) 22:35:03
>>355
Cランタイムなら_malloc_dbg
MFCならDEBUG_NEW
あたりだと思うけど。

ただ、_DEBUGが定義されてると、mallocは_malloc_dbgになるらしいぞ。





364 名前:デフォルトの名無しさん :2005/04/28(木) 22:57:51
>>358
載ってません。
実際の使用感を教えてください。

365 名前:デフォルトの名無しさん :2005/04/28(木) 23:01:26
>>353
スタンダード版は最適化ができないようになっている。

366 名前:デフォルトの名無しさん :2005/04/28(木) 23:12:07
勉強してるうちにどんどんバージョンアップが進むからな
使えるようになったころには使えない製品になってる。

367 名前:デフォルトの名無しさん :2005/04/28(木) 23:23:44
VC Toolkit + PSDK で勉強して、ある程度できるようになってからIDE買えばいいじゃないか



漏れは途中でtheSpokeに釣られたけどな...orz

368 名前:デフォルトの名無しさん :2005/04/29(金) 00:27:08
コンパイルしたりするのにIDEはなくてもいいが、
デバッグするのには欲しいな。

369 名前:353 :2005/04/29(金) 01:11:32
>>365
ありがとうございます。
toolkitってやつで無料で最適化できますよね?
他には違いはありますか?

370 名前:353 :2005/04/29(金) 01:14:02
>>367
BCC+BCCDevで勉強してます。
ある程度出来るようになってから何を買えばいいのかと思いまして。

371 名前:デフォルトの名無しさん :2005/04/29(金) 01:21:25
ベクターのフリーで作られたゲームなんかを見ていると
VBやツクールでつくられてるものが、ほとんどだけど
やはり、VC++でゲームをつくるには、時間と労力がかかりますか??

VC++でつくるのが王道って勝手に認識してるのですが。。

372 名前:デフォルトの名無しさん :2005/04/29(金) 01:26:19
作りたいものと自分のスキルで選べばよろし。

373 名前:デフォルトの名無しさん :2005/04/29(金) 01:26:44
vc++で開発したものと、VBで作ったものでは、
どういう違いがあるんですか?

374 名前:デフォルトの名無しさん :2005/04/29(金) 01:30:19
ここまでひどい質問は・・・

375 名前:デフォルトの名無しさん :2005/04/29(金) 01:30:25
VBはランタイムが必要だったよな


376 名前:デフォルトの名無しさん :2005/04/29(金) 01:30:38
>>372
難しそうですが、vc++でやってみようと思います。
ありがとうございました。

377 名前:デフォルトの名無しさん :2005/04/29(金) 01:33:46
>>374
きめ細かく組めるってことは知ってたんですが、、。

378 名前:デフォルトの名無しさん :2005/04/29(金) 02:25:38
なぜか誰も書いてないけど
変数名,要素数
で表示できるよ

379 名前:378 :2005/04/29(金) 02:27:18
>>327へ向けて書いたものですorn

380 名前:デフォルトの名無しさん :2005/04/29(金) 05:03:08
createwindow()の引数HANDLE hInstanceとはなんのインスタンスの
ハンドルなんですか?

createwndowの戻り値と同じもの???


381 名前:デフォルトの名無しさん :2005/04/29(金) 11:13:44
所属モジュールのインスタンスハンドル
WinMainの引数をそのまま渡せばよい
CreateWindowの戻り値はウィンドウハンドルだろーガッ

382 名前:デフォルトの名無しさん :2005/04/29(金) 12:20:48
HANDLE hInstance と HWND が同じモノに見えるのカ

383 名前:デフォルトの名無しさん :2005/04/29(金) 15:40:16
コンパイラ:VC++ 6.0
_WIN32_WINDOWS や _WIN32_WINNT に定義する値は、
「このバージョンからなら動くよ」という値を入れておけば良いのですか?

384 名前:デフォルトの名無しさん :2005/04/29(金) 16:09:10
そんなの気にしたことないな

385 名前:デフォルトの名無しさん :2005/04/29(金) 16:15:43
>>383
例えばWindows2000以降にしかない関数を使うとき、
APIによっては_WIN32_WINDOWSの値を大きくしないとプロトタイプ宣言が見えないことがある。

VC++6は1998年ごろのやつだから、Platform SDKを入れないとWindows2000以降の機能は使いにくいが。

386 名前:383 :2005/04/29(金) 18:04:38
なるほど、分りました。
Platform SDKというのも調べてみます。

387 名前:デフォルトの名無しさん :2005/04/29(金) 18:07:47
何か論点がずれてるような?

388 名前:デフォルトの名無しさん :2005/04/29(金) 20:00:55
>>383
「このバージョン以降で動かすことを前提とする」という値。

マクロ定義が変わるだけで、呼べるAPIが変わる or コンパイル時にエラー出してくれるだけなので、
OSのバージョンによって実装されてないAPIを呼ぶようなプログラムでは、
それらのAPIを呼ぶ前に、自前でバージョンをチェックしてね。

いちおうEXEやDLLに、NT専用とかの設定はあるけど、
それでOSにハネさせるのは、一般のユーザには馴染みがないから、不親切です。

389 名前:デフォルトの名無しさん :2005/04/29(金) 22:12:28
> OSのバージョンによって実装されてないAPIを呼ぶようなプログラムでは、
> それらのAPIを呼ぶ前に、自前でバージョンをチェックしてね。

チェックする前に起動時にコケるわけだが

390 名前:デフォルトの名無しさん :2005/04/29(金) 22:52:02
実装されていない、って言葉によるな。
DLLにシンボルさえないAPIもあれば、
ERROR_CALL_NOT_IMPLEMENTEDが帰るAPIもある

391 名前:デフォルトの名無しさん :2005/04/29(金) 23:11:55
かなり曖昧だけど、、似たような条件下で書いたコードは
VC#やVBやjavaよりもVC++のほうが動作が速いですか?
.net frameworkを交えたら一緒になっちゃったりするわけですか?

392 名前:デフォルトの名無しさん :2005/04/29(金) 23:39:36
>>391
まあC++のほうが遅くなることはまずないと思うけどね。
速度にどれだけの差が出るかは場合にもよるのでちゃんとやりたきゃしっかりテストしましょう。

393 名前:デフォルトの名無しさん :2005/04/30(土) 00:11:29
ネイティブコンパイルしたVBはかなり速い
ただしオブジェクト変数さわったとたん遅くなるけど

394 名前:デフォルトの名無しさん :2005/04/30(土) 00:22:38
>>391
C#はCLR(共通言語ランタイム)で動くアプリを作れて、VC++はネイティブアプリを作れる、VBはしらんがな、6まではネイティブ作れた

[C#アプリ1]〜[C#アプリN]
  |  
 [CLR]   [VCアプリ]
    [Windows]

CLR上のプロセスはWinからは1つのプロセス空間(CLR)にしかみえないのだろうか
ネイティブプロセスの仮想メモリ空間を効率的に使うとか本でちっと読んだが、実行時に中間言語コンパイル噛むとかで遅いらしい

395 名前:デフォルトの名無しさん :2005/04/30(土) 02:32:41
>>389
そういうAPIはインポートライブラリを使わずに、
LoadLibraryやGetProcAddressとか使いましょうよ。

>>391
ものによるなぁ。
C++は速いと信じきっていたけど、Javaを使って考え変わったよ。

C++は自由度が高すぎてコンパイラが大胆に最適化できないし、
けっこう無駄なコードを書いたりするから。

396 名前:デフォルトの名無しさん :2005/04/30(土) 04:38:50
>けっこう無駄なコードを書いたりするから。

そりゃ、書く人のスキル

397 名前:デフォルトの名無しさん :2005/04/30(土) 04:40:03
> C++は自由度が高すぎてコンパイラが大胆に最適化できないし、

ソースレベルで最適化。

398 名前:デフォルトの名無しさん :2005/04/30(土) 08:45:36
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
OS を再インストールしたので PSDK を Update しようとしたら This page has moved. になっちゃってました。
いまだに VC++ 6.0 で Windows 98 向けアプリを作ってるんですが 2003 年頃の PSDK は何処で手に入れればいいのですか?

399 名前:デフォルトの名無しさん :2005/04/30(土) 08:50:19
だいたいのC++コンパイラは、コードに基づいた静的な最適化しかしないけど、
JavaのJITとかはプロフィールベースの最適化だから、Javaの方が
速くなりうる、と言う話もあるよね。

400 名前:デフォルトの名無しさん :2005/04/30(土) 10:06:47
>>399
馬鹿ですか?
自動車とオリンピック選手がマラソンで競争したら
オリンピック選手の方が速いとかいいそうだな

401 名前:デフォルトの名無しさん :2005/04/30(土) 10:12:09
m9(^д^)

402 名前:デフォルトの名無しさん :2005/04/30(土) 10:38:59
>>400
もう少し勉強してから書き込んでくれ。

403 名前:デフォルトの名無しさん :2005/04/30(土) 10:48:02
http://homepage2.nifty.com/Fujimaki/download/Comparison/
最新バージョンのVB, VC, CB,Delphi, JavaおよびC#で作成された
同一アルゴリズムの簡単な数値計算プログラムの実行速度を比較してみた。

実行速度はおおよそ
VisualC++≒C# > Delphi ≒ C++Builder>VisualBasic≒Javaの順で,
以前の試験と比較すると,VBの速度が若干向上し,
初登場のC#がVC並みの速度を有することがわかった。
JavaはVCの1/4〜1倍程度の速度を有しており,
数値計算に不向きと言えるほどの低速ではなかった。

404 名前:391 :2005/04/30(土) 16:03:06
漠然とした質問に答えてもらって、ありがとです。皆さん。
>>403
C#って意外と速いんですな。
VC++よりもえらく簡単そうなのに。。

405 名前:デフォルトの名無しさん :2005/04/30(土) 17:52:55
こんばんわ
質問があるのですが

Dialogをリソースエディタで
http://www.geocities.jp/devil_man_kekeke/pict1.JPG
に作ったんですが、

実際にアプリを実行させて、モーダルでShowさせたら
http://www.geocities.jp/devil_man_kekeke/pict2.JPG
な感じになり、
余計なボタンが2つとスタティックテキストが表示されてしまいます。(OK、Cancel、TO DO)

これはどうしてこうなるのでしょうか?
初歩的な質問になりますが、よろしくお願い致します。

406 名前:405 :2005/04/30(土) 17:54:20
ちなみに、コーディングに関しては、

void CMainFrame::OnTestEx6()
{
// TODO : ここにコマンド ハンドラ コードを追加します。
CEx06Dialog ex06dlg;
ex06dlg.DoModal();
}

としています。
.NET2003です。

407 名前:デフォルトの名無しさん :2005/04/30(土) 18:37:29
>>405
一度VisualStudioを終了して、再度ソリューションを開いたらリビルドして味噌。
それでもダメならリソースハンドリングかどこかで何かミスをしている。

408 名前:デフォルトの名無しさん :2005/04/30(土) 18:49:33
ダイアログとHTMLダイアログが重なっているように見える。

409 名前:405 :2005/04/30(土) 19:19:12
>>408
なるほど
HTMLダイアログというものもあるんですね

IDH = IDR_HTML_EX06DIALOG
CDHtmlDialog(CEx06Dialog::IDD, CEx06Dialog::IDH, pParent)

これを無効にしたいんですが、どのようにすればいいのでしょうか。
通常のDialogだけ表示できればいいです。

410 名前:405 :2005/04/30(土) 19:21:48
>>407
ご返答助かります。
HTMLダイアログの問題みたいです。


とりあえず、htmlの内容を全て消去して解決しました。
知識不足ですいません。
現在、VisualBasic6.0の分厚い本を参照して勉強しているので、HTMLダイアログの存在がわかりませんでした。

411 名前:395 :2005/04/30(土) 22:29:08
>>396
>>397
俺も昔はそう思ってたよ。

412 名前:デフォルトの名無しさん :2005/05/01(日) 00:49:35
>>166のように本音を言うと叩かれる法則。


413 名前:デフォルトの名無しさん :2005/05/01(日) 01:03:11
>>351
浮動小数点の場合はどうしてますか?

414 名前:デフォルトの名無しさん :2005/05/01(日) 01:04:17
VS.NET2003を使ってるのですが、コンソール用アプリを
プロジェクトを作らずにコマンドラインでコンパイルすることは
できないでしょうか?

415 名前:デフォルトの名無しさん :2005/05/01(日) 01:21:18
>>414
Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat

416 名前:デフォルトの名無しさん :2005/05/01(日) 05:46:00
ウィルスってなんであんなに小さいのですか?


417 名前:デフォルトの名無しさん :2005/05/01(日) 06:28:06
小さくないよ。


418 名前:デフォルトの名無しさん :2005/05/01(日) 13:33:25
>>412
そら心の狭いてぃんかすやろうだけ

419 名前:デフォルトの名無しさん :2005/05/01(日) 13:41:39
>昔プログラマをしていた者です。

>>412
こういうやつ一番嫌い。
まず使い物にならん

420 名前:デフォルトの名無しさん :2005/05/01(日) 13:45:03
>172 名前:166[] 投稿日:2005/04/23(土) 10:58:31
>>167
>昔散々やったことなので、時間が勿体無くて。。
>他の人に聞くと一瞬で解決することが時々あるので質問させてもらいました。

嫌なもの見ちまった

421 名前:414 :2005/05/01(日) 14:31:34
>>415
すいません、vs32vars.batでどうすればいいんでしょうか?
やりたいことは
c:\>cc hello.c
のような方法でコンパイルをしたいのですが。

422 名前:デフォルトの名無しさん :2005/05/01(日) 14:35:51
>>421
コマンドプロンプトで
>vs32vars.bat
を実行すれば
>cl hello.c
でコンパイル出来るようになる。


423 名前:デフォルトの名無しさん :2005/05/01(日) 14:48:48
419 :デフォルトの名無しさん :2005/05/01(日) 13:41:39
>昔プログラマをしていた者です。

>>412
こういうやつ一番嫌い。
まず使い物にならん

こいつも使い物にならんな

424 名前:デフォルトの名無しさん :2005/05/01(日) 14:52:01
プログラマーなんて一般人から見ればまともじゃないし
偏見のようだがこのスレ見てると遠からずだな

425 名前:デフォルトの名無しさん :2005/05/01(日) 14:58:41
>>423-424
政界

426 名前:デフォルトの名無しさん :2005/05/01(日) 15:02:01
否定できないものがあるな

427 名前:デフォルトの名無しさん :2005/05/01(日) 15:03:50
>>424
だから鎮火すは一部の奴だっつーの。

428 名前:デフォルトの名無しさん :2005/05/01(日) 15:10:25
>昔プログラマをしていた者です。
>昔散々やったことなので

入試に失敗した時のいいわけに使えそう。

429 名前:デフォルトの名無しさん :2005/05/01(日) 15:33:13
>>428
厨房ですか?

430 名前:デフォルトの名無しさん :2005/05/01(日) 15:35:55
自称玄人が教えるスレなの

431 名前:デフォルトの名無しさん :2005/05/01(日) 16:00:58
質問です。
VS2003のVC++使ってるんですけど、Win32しかプラットフォームをIDE上からは選べませんよね?
で、インクルード関連の設定をWin32/Win64で切り替えるときにいちいち手動で書き変えるのはあまり現実的ではないとおもうんで
自分でプラットフォームの設定項目を加えたいんですが・・・
どうすれば出来ますか?
Release64は自分で追加出来るのに・・・・・

432 名前:デフォルトの名無しさん :2005/05/01(日) 16:05:39
>>431
Win32のウィザードを参考にしながら、Win64のウィザードを作ったらいい。

433 名前:デフォルトの名無しさん :2005/05/01(日) 17:27:50
初心者がWin64使うのは想定外なんだろ

434 名前:デフォルトの名無しさん :2005/05/02(月) 09:08:34
VC++6で、リリースコンパイル時のみ、
>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc はすでに libcmt.lib(malloc.obj) で定義されています
みたいなエラーがでます。
回避策教えて下さいでつ。

435 名前:デフォルトの名無しさん :2005/05/02(月) 09:20:09
LIBCMTD.lib(dbgheap.obj) デバッグ用
libcmt.lib(malloc.obj) リリース用

どっちか1つに

436 名前:デフォルトの名無しさん :2005/05/02(月) 11:35:18
>>434
静的リンクするライブラリも、必要ならデバッグビルド用とリリースビルド用を用意汁。

437 名前:デフォルトの名無しさん :2005/05/02(月) 12:39:32
どうもクラス、特に派生クラスの使い方が分かりません。
一つのクラスにまとめてしまうと何がまずいんでしょうか。

438 名前:デフォルトの名無しさん :2005/05/02(月) 13:44:38
>>437
「一つのクラスにまとめる」という理由で派生クラスにしてしまうのは、あまりよろしくないと思う。
それだったら素直に基本クラスをメンバにした方がいいんじゃまいか…。

派生が威力を発揮するのは、ポリモーフィズム使うときとか。


439 名前:デフォルトの名無しさん :2005/05/02(月) 14:21:30
>>437
クラスのメソッド内部がフラグの嵐で読めなくなるから。

複数のパターンを派生で分けとけば、
新しいパターンが増えても派生クラスだけ注意してテストすれば良いが、
フラグ分岐の場合、全ソース注意してテストする必要があるから。

440 名前:デフォルトの名無しさん :2005/05/02(月) 14:24:03
なぜよろしくないのだ?

441 名前:デフォルトの名無しさん :2005/05/02(月) 15:01:14
昨日から使い始めたド初心者です。
ソリュージョンエクスプローラの枠とスタートページの枠が逆に入れ替わってしまったのですが
どうやったら元に戻りますか?

教えてください、お願いします。

442 名前:デフォルトの名無しさん :2005/05/02(月) 15:24:32
>>441
ドラッグ&ドロップ

配置がうまくいかずに滅茶苦茶になってしまったときは
[ツール][オプション][環境][全般] [ウィンドウ レイアウトのリセット]で

443 名前:441 :2005/05/02(月) 15:36:54
>>442
[ツール][オプション][環境][全般] [ウィンドウ レイアウトのリセット]
これでうまくいきました。 ありがとうございます。

質問してみてよかったです。



444 名前:デフォルトの名無しさん :2005/05/02(月) 17:45:19
マルチスレッドのライブラリと
シングルスレッドのライブラリでは、
具体的には何が違うんですか?

445 名前:デフォルトの名無しさん :2005/05/02(月) 18:05:01
共有資源がない

446 名前:デフォルトの名無しさん :2005/05/02(月) 20:15:58
再入可能かどうか

447 名前:デフォルトの名無しさん :2005/05/02(月) 21:39:35
再入不可能だとどうなるの?

448 名前:デフォルトの名無しさん :2005/05/02(月) 21:49:42
挙動が予期しないものになる
strtokをマルチスレッド環境で走らせてみればわかる

449 名前:デフォルトの名無しさん :2005/05/02(月) 21:49:46
>>447
複数のスレッドが同時に同じ関数を使おうとしたときにまずいことになる。
strtok()の使い方を考えてみるのがわかりやすいかな。

450 名前:デフォルトの名無しさん :2005/05/03(火) 05:40:48
たとえば静的変数を使っているような関数は
マルチスレッド用にはできない。
関数に複数のアクセスがあったときに
静的変数の値が予期できないものになってしまう。
そんな単純な理由だったような

451 名前:デフォルトの名無しさん :2005/05/03(火) 10:07:14
ファイルのデッドロックが発生している個所を特定するための
手法を教えてください。

452 名前:デフォルトの名無しさん :2005/05/03(火) 10:10:50
ここは初心者スレ

453 名前:デフォルトの名無しさん :2005/05/03(火) 10:42:09
ケチ

454 名前:デフォルトの名無しさん :2005/05/03(火) 11:27:34
ファイルのデッドロックって何?

455 名前:452 :2005/05/03(火) 12:08:44
>>454
それはオレにも分からん

456 名前:デフォルトの名無しさん :2005/05/03(火) 14:26:20
#ifdef TESTDLL_EXPORTS
#define TESTDLL_API __declspec(dllexport)
#else
#define TESTDLL_API __declspec(dllimport)
#endif

#include <atlbase.h>
#include <vector>

class TESTDLL_API Test {
private:
CComBSTR bstr;
std::vector<A> vec;
};

こんな感じでヘッダー作ると
CComBSTR とstd::vectorは_exportキーワードを使え
とワーニングが出るんですが
どうすれば回避できるのでしょう?

457 名前:デフォルトの名無しさん :2005/05/03(火) 16:49:45
それは初心者スレの範囲にはいるのかな?

458 名前:デフォルトの名無しさん :2005/05/03(火) 21:33:57
>>456
マジレスすると・・・

クラスをexport/importするなゴルァ

459 名前:908 :2005/05/03(火) 22:16:05
質問です。
void sarch(char *in, char *filepath)
という関数を作成して
int main(void)
{
sarch(配列,"ファイル名");
return(0);
}
といった風に関数呼び出しを行うのですが、
sarchの中でfopenをし、fgetsを使うとエラーが出ます。
原因がわからないのですが
どの辺がおかしいですか?

460 名前:デフォルトの名無しさん :2005/05/03(火) 22:22:10
関数名のスペル

461 名前:デフォルトの名無しさん :2005/05/03(火) 22:31:23
この板で質問していいのか分からんのですが
VisualC++6.0 だと
テンプレート引数としてテンプレートを指定すると
コンパイルが通りません。

template<class T, template<class> class C> class A{
 C<T> a;
};

VisualC++6.0のテンプレート機能が弱いから、と聞いたのですが、
.NET (というかVisualC++6.0以降ではこれしか知らない)とかなら
コンパイル通りますか?

462 名前:デフォルトの名無しさん :2005/05/03(火) 22:33:09
>>461
template<class T, class C> class A {
 typename C<T> a;
};
VC6だとtypename外した方がうまくいくかも。

463 名前:デフォルトの名無しさん :2005/05/03(火) 22:51:33
>>462

「error C2059: 構文エラー : '<'」となりますです。
「class C」だけでは C をテンプレートとして扱えないようです。
「template C<T> a;」(templateキーワードの明示的な指定)としても
駄目ぽでした。

>>462 さんのコードは >>462 さんの環境でコンパイルできましたか?

ちなみに >>461 のコードは Bjarne Stroustrup の
「プログラミング言語C++」からの抜粋です。


464 名前:461 :2005/05/03(火) 22:53:07
463=461です。
上に書いた templateキーワードの明示的な指定は、
正しいかどうか分かりません。いろいろ試行錯誤してみましたが
やりたいことが実現できんとです…。

465 名前:デフォルトの名無しさん :2005/05/03(火) 23:17:25
試行錯誤するんなら、コンパイラ変えてみればいいんじゃないか?
それとも手段が目的なんだろうか?

466 名前:デフォルトの名無しさん :2005/05/03(火) 23:35:04
コンパイラ替えろって非現実的な話になってきたな

467 名前:デフォルトの名無しさん :2005/05/03(火) 23:35:25
すいません。エラーが出たのですが、何処がおかしいのでしょうか?
<html><head><META HTTP-EQUIV="Content-Type" content="text/html; charset=shift_jis">
</head><body><pre><table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
ビルド ログ
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> 
</td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>
<h3>------- ビルド開始 : プロジェクト : sample、構成 : Debug|Win32 -------
</h3></pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
コマンド ライン</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0
bgcolor=#FFFFFF> </td><td width=*><pre>一時ファイル "c:\Documents and Settings\ouner\My Documents\Visual Studio Projects\sample\Debug\RSP000002.rsp" を作成しています。内容 :
[/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /c /Wp64 /ZI /TP
".\sample.cpp"]
コマンド ライン "cl.exe @"c:\Documents and Settings\ouner\My Documents\Visual Studio Projects\sample\Debug\RSP000002.rsp" /nologo" を作成しています。
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
出力ウィンドウ</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>コンパイルしています...
sample : error PRJ0003 : cl.exe' の起動中にエラーが発生しました。


468 名前:デフォルトの名無しさん :2005/05/03(火) 23:36:29
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
結果
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>
ビルドログは "file://c:\Documents and Settings\owner\My Documents\Visual Studio Projects\sample\Debug\BuildLog.htm" に保存されました。
sample - エラー 1、警告 0</pre></table><table width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
</font></table></body></html>

エラーが1つだけあるらしいのですが、見付けられません。
警告はなかったです

469 名前:デフォルトの名無しさん :2005/05/03(火) 23:38:56
ouner...

470 名前:デフォルトの名無しさん :2005/05/03(火) 23:42:01
あっ、その部分は私の名前だったので
書き込むときに変えましたです

471 名前:デフォルトの名無しさん :2005/05/03(火) 23:42:41
関係ないが u -> w

472 名前:デフォルトの名無しさん :2005/05/03(火) 23:44:08
訂正:owner^^;

473 名前:デフォルトの名無しさん :2005/05/03(火) 23:47:28
VBAのような、構文エラーを見付けるデバッグをしたいのですが
すいませんが、手順を教えて下さい
2時間程エラーを探してるんですが、もう目が痛いです

474 名前:デフォルトの名無しさん :2005/05/04(水) 00:05:50
>>458
シンボルの付け方に互換性があれば
クラスをエクスポートするのは別に大丈夫でしょ?
MFCとかもあるし。
メンバーにテンプレートのクラスがあるのが問題点で解決方が不明。

475 名前:デフォルトの名無しさん :2005/05/04(水) 00:06:32
たびたびすいません
同じソースで秀丸でGUIコンパイルしたら、
無問題だったのですが、どうすれば良い結果が生まれるのでしょうか?

476 名前:デフォルトの名無しさん :2005/05/04(水) 00:10:04
とりあえずクマさんの人形に向かって状況を説明してみろ

477 名前:461 :2005/05/04(水) 00:43:23
>>465-466
VisualC++6.0のままでコンパイル通せる方法があれば儲け物、として
考えてるくらいで、コンパイラを変えることは検討しています。
ただ、変えてみて同じだったらお金の無駄になってしまうので
.NET で >>461 のコードが通るかどうかが知りたいです。

478 名前:デフォルトの名無しさん :2005/05/04(水) 01:16:11
>>476
今から、再インストールおっぱじめたいと思いますです

479 名前:デフォルトの名無しさん :2005/05/04(水) 01:25:19
VC++のエディタ(というかIDE)で、右上のポップアップに
関数名が表示されるけど、
今開いているソースファイルのみの関数名の表示は、どうやるんですか

480 名前:デフォルトの名無しさん :2005/05/04(水) 01:37:35
>>479
this->で書き始めれば、候補をメンバ関数に絞れる。

481 名前:479 :2005/05/04(水) 02:54:58
??
ソースファイル中の関数名なんですけど。
他の開発環境では、ソース内の関数が表示されたんですが。
コードの量が増えてきて、
全部まるごと表示されたら、探すの大変だと思うんですが。

482 名前:475 :2005/05/04(水) 02:56:45
無事ビルド完了しました。
これでようやく寝れます。「イント・ウィン・エーピーアイ・ウィンメイン」とお経のように唱えながら寝ます

483 名前:458 :2005/05/04(水) 04:02:03
>>459
すべてのソースを晒しなさい。
ここに書くと読むのもあれなんで、自分のWebページで。

>>473
何を意図しているのかよくわからないので、
まずは落ち付いて、わかる文章で書き直してください。

>>474
シンボルの名前の問題だけではないのですよ。

ちょっと考えただけでも、
・C++以外の言語から使うのが難しい
・privateメンバですら追加不可能で、回避手段を予め仕込んでおく必要がある
・virtualどうすんのよ
っていう問題があるのですよ。

後々のことを考えたら、DLLで公開する部分は、
第一引数にオブジェクトのハンドルを渡すようなWin32 APIスタイルにしておき、
それをC++クラスでラップするラッパーのソースを提供したほうがいいと思います。



484 名前:デフォルトの名無しさん :2005/05/04(水) 08:34:19
あるいはCOMとしてインターフェイスを公開するようにするとか。

485 名前:デフォルトの名無しさん :2005/05/04(水) 08:44:58
>>463
> ちなみに >>461 のコードは Bjarne Stroustrup の
>「プログラミング言語C++」からの抜粋です。

それはVCの本じゃないからスレ違いだろ
VCを使いたければVCにあったコードを書け
単にそのコードを使いたいだけなら、それにあったコンパイラを使え

>1.1.3 処理系についてのコメント
>C++言語の一部としてつい最近採用されたばかりの
>機能を使っているサンプルは、一部の処理系ではコンパイルできなかった。

486 名前:デフォルトの名無しさん :2005/05/04(水) 10:41:15
>>479
VisualStudioのバージョンは?
つーか、開いているソースファイル内のクラスが左に列挙されていてそのメンバ関数が右に列挙されていると思うのだけど。

>>480
インテリセンスの話じゃないらしいよ。

487 名前:479 :2005/05/04(水) 10:48:55
ファイル内関数の方が単純で分かりやすいと思うんだけど。
>>486 >>480
ありがとう

488 名前:デフォルトの名無しさん :2005/05/04(水) 10:52:02
>>487
なにがありがとうだよ。訳わからねぇことぬかして質問にも答えねぇで一人で勝手に納得してんじゃねぇよ。
こちとら消化不良だぜぃ。

489 名前:デフォルトの名無しさん :2005/05/04(水) 11:41:16
うるせえチンカス

490 名前:461 :2005/05/04(水) 12:15:19
>>485
そのコードが使えるVCのバージョンを探している、ということです。


491 名前:デフォルトの名無しさん :2005/05/04(水) 12:24:02
>>490
スレ違い
その本はVCの本じゃない&初心者用の本じゃない
スレ違い&スレ違い

492 名前:461 :2005/05/04(水) 12:43:00
他で質問します

493 名前:デフォルトの名無しさん :2005/05/04(水) 13:50:07
>>483
VCプログラムでVC以外からの利用を考慮するのか
さすがだな

494 名前:デフォルトの名無しさん :2005/05/04(水) 14:07:09
グダグダなスレだな

495 名前:デフォルトの名無しさん :2005/05/04(水) 14:14:00
だって住人が

496 名前:デフォルトの名無しさん :2005/05/04(水) 14:32:31
からあげを

497 名前:デフォルトの名無しさん :2005/05/04(水) 14:34:17
>>493
クライアントプログラムがVCとはかぎらんだろ
VBからかもしれないしCかもしれないしDelphiかもしれない

498 名前:デフォルトの名無しさん :2005/05/04(水) 15:05:56
VC++でクラスをエクスポートするDLLをVBやCから使うバカが居るんですか?

499 名前:デフォルトの名無しさん :2005/05/04(水) 15:14:25
それはいないだろ

500 名前:デフォルトの名無しさん :2005/05/04(水) 15:17:00
え?managedなら使えるんちゃうの?
インターフェース用意したりすればunmanagedでも使えなかった?


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