VisualC++相談室 【7】
■ このスレッドは過去ログ倉庫に格納されています
0001いさましいチビの女の子
NGNG前スレッド
http://pc.2ch.net/test/read.cgi/tech/1011615035/l50
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGtypedef char CHAR;
typedef CHAR *LPSTR, *PSTR;
0155デフォルトの名無しさん
NGNG>文字列への 32 ビット ポインタ
0156デフォルトの名無しさん
NGNG全くもう..
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGセグメントをまたいでのメモリアクセスが可能なポインタ。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG全くもう..
0161デフォルトの名無しさん
NGNG超えられない?
わけわからーん。
0162デフォルトの名無しさん
NGNGそれが1セグメントっす。
0163デフォルトの名無しさん
NGNGナニ、過去の遺物だって? 寝ぼけたこといってるなぁ。
VC がどんなコードを吐いてるか、考えたことないのか?
「FAR ポインタなんて過去の遺物」なんて言ってるヤツは、
今後一切、例外処理を使うなよ。
例外処理をしている DLL を呼び出すこともまかりならん。
0164デフォルトの名無しさん
NGNGFAR自体を知らなくても例外処理できるから遺物なんでつよ(´Д⊂
0165デフォルトの名無しさん
NGNG0167159
NGNGんと,VC++のインクルードファイル見たんですよ。すると,
#define far
#define FAR far
ってなってたので。
32bit以前のコード移植の為にあるだけだと思ってたんですが。
0168デフォルトの名無しさん
NGNG将来のコンパイラとのソース互換確保のためじゃないの?
0169デフォルトの名無しさん
NGNGお前ら本当に大丈夫か ? まさか、Near ポインタがいまだに 16bit とかいって
んじぁねーのか。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG「64k」って...いつの時代の話してるんだゴラァ!
0173デフォルトの名無しさん
NGNGVS.NETからPlatformSDKも最新版(64bit対応)になってそのままだと
通らないソースとか出てきてショボーンだったりしませんか?
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG一部のAPIは64bitへの移植に備えてるみたいだが、まだ中途半端で困る。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG何かアドバイスをください。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGRealSDKをDLしてみたんですが、MFCでコンソールアプリ用だったし。
rmoc3260.dllを#importしてCoCreateInstanceでスマートポインタを取得するところまではできたのですが、
「再生ウィンドウを表示して、自作ウィンドウに埋め込む」というのが出来ません。
VBとDelphiなら簡単にできましたが、ActiveXを使うにはVCは向いてないのでしょうか?
どなたか知恵を貸してください。
0181デフォルトの名無しさん
NGNGもちろん、VC標準にはない機能は自分で実装すること
0183デフォルトの名無しさん
NGNGハァ?
おまえがDelphiでやった事じゃなくて、
Delphiが内部でやっていることだっつーの。
VCLのソースだって付いてきてるんだろ
0184180
NGNG実はDelphi全くの初心者で…
フォームに貼り付けて実行して表示された段階でできた!って思っただけなので。
(VCではダイアログに貼り付けても表示すらされない)
ちょっとDelphi勉強してきます。
0185チビ
NGNG0186デフォルトの名無しさん
NGNG0187学徒
NGNG(確か十万よりちょっと大きかったです)が出るわけですがこの理由は何なのでしょうか?不思議でしょうがないです
int i=0;
float a=0;
while(i<1000000){
i++;
a=a+0.1;
}
誰か御教えください、おねがいしますm(_ _)m
またこのことについて載っているサイト等ありましたら御教えくださいませ
0188デフォルトの名無しさん
NGNG0.1というか浮動小数点数が2進数でどう表されてるかを
勉強すると良いかと。
0189デフォルトの名無しさん
NGNG10進数の 0.1 は、2進数では割りきれない値だから、その誤差が出る。
ループで加算のかわりに、乗算でも結果は同じだと思うな。
float a = 0.1;
printf("%f\n", a*1000000 - 100000);
0190デフォルトの名無しさん
NGNG10/3 = 0.3333333を3回足しても10という値が出ずに中途半端な値
(確か10よりちょっと小さかったです)が出るわけですがこの理由は何なのでしょうか?不思議でしょうがないです。
0191もうだめぽ・・・
NGNG○10/3 = 3.3333333
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG情報処理技術者試験でも受けてみなはれ。
0194180
NGNGMFC嫌いなんだよな〜
MFC使うならVBで書いたって同じだし…
でもユーザが
「VC++ SDKで。
プレゼンテーションを表示したいから、フォームでRealPlayerを実行したい」
ってなわがまま言うもんだから…
しっかし、COM難しすぎ!!
0195デフォルトの名無しさん
NGNGなら、ATL/WTLですね :-)
0196デフォルトの名無しさん
NGNG失敗するんですが、原因わかる方、いる?
Errors occurred during installation.
1601: A Windows installer error has occurred.
512: Installation failed with one or more errors.
Plaese correct the errors and/or try again.
0197学徒
NGNG皆様ありがとうございます
0.1は2進数で割り切れない数だからだったんですね
ということはfloatでなくてdoubleにでもすれば少しはましになるということですね
完全に解決する方法はないのでしょうか?
>>189
>printf("%f\n", a*1000000 - 100000);
これはなぜ -100000引いてるんですか?
0198デフォルトの名無しさん
NGNG文字列で数値表現すれば一応解決w
0199デフォルトの名無しさん
NGNGmciSendStringやsndPlaySoundなどで音を鳴らすときに
2つ以上の音を同時に鳴らすことはできないといわれました。
DIRECTSOUNDを使えばできるといわれたんですが
これは本当なのでしょうか?
また、もし本当なら、DSOUNDを使う以外にどのような手段があるでしょうか?
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG自前ミキサとは何でしょう?
検索エンジンにもひっかからないところを見るとプログラム用語ではないのでしょうか?
>>201
BGMと効果音なので、そういう手段はとれないんですよ。
0203デフォルトの名無しさん
NGNGぉぃぉぃ
まぁ、名前を聞いて理解できないようじゃおまえにゃ実現できない方法だから安心しろ。
BGMとSEなら、midi/waveで普通に並列で慣らせるだろ。
BGMをwaveで鳴らすような馬鹿なことはするな
0204デフォルトの名無しさん
NGNG1つのwave outから沢山の音を出す事。素人にはおすすめ以前に、出来ない。
何にせよ、199君はDirectSoundを学ぶ事を勧めるよ。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGDIRECTSOUNDではできるんですが、
ちょっとした事情によりDSOUNDを使ってはいけないんですよ。
検索すればソースとかが出てきてもよさげなので、
それを改造してミキサを実装することにします。
すばやい回答ありがとうございました。
0207デフォルトの名無しさん
NGNGミキシングは簡単だが、sndPlaySoundしか知らない奴にダブルバッファリング
でリアルタイム合成出力なぞ出来る訳がなかろう。
0208デフォルトの名無しさん
NGNG同時に音がなったんですが、これはサウンドボードによるものなのでしょうか?
そんなに良いサウンドボードは使ってないんですが……
0209デフォルトの名無しさん
NGNGその数までなら普通に同時に鳴らせられる。
それから、Win2k(XPはしらん)ならOSがミキシングしてくれるから、
自前で書かなくても問題はない。
0210デフォルトの名無しさん
NGNGWAVEファイルを読んでメモリにおいておき、
それを自分でWAVEOUTで出力するんですね。
実際に音の合成をするにはどのような演算をすればいいんでしょう?
それが検索でなかなか見つからなくて……
0211デフォルトの名無しさん
NGNGありがとうございます。
最近のマシンのみを対象にする場合はそれでもOKということですね。
0212デフォルトの名無しさん
NGNG足し算です。但しオーバーしないように、あらかじめ元のwaveを縮小しておくべし。
0213デフォルトの名無しさん
NGNGありがとうございます、検索で見ながらさっそくやってみます。
0214デフォルトの名無しさん
NGNGSSE命令の所を通るとIllegalInsatruction例外が発生するようになってしまいました。
SSEは自分で書いた物じゃなくてDirectXの中なんですが。
デバッガ上でなくシェル上でなら普通に動作します。
VC++6.0使ってるんですが、そういや最新のSP当てて無かったなぁ、とSP5
を当てて見たものの解決せず。
どうやったらこれ解決できるんでしょう?
検索して見たらこのスレの過去ログがヒットした物の、HTML化されて
無くて閲覧できづ。
キシュツだったらスマンですが、誰か何か知って居たら教えて下さい‥‥
0215デフォルトの名無しさん
NGNGIllegalInstructionを「ハンドルされてなければ停止」にすればいいとか。
0216デフォルトの名無しさん
NGNGxxx.libxxxという名前のフォルダの下にライブラリファイルを置いたら、
リンクできないんですがなぜですか?
使用しているコンパイラはVC++6.0です。
0217216
NGNG0218デフォルトの名無しさん
NGNGMSDNで「リンカ入力ファイル」で検索すると
.libxxxなんて入力ファイル形式が無いが。
0219216
NGNGファイルじゃなくてフォルダの名前が"xxx.libxxx"なんです。
具体的にいうと
C:\Documents and Settings\username.LIBxxx\My Ducuments\project\hoge\lib
に置いてあるライブラリがリンクできないんです。LIBxxxはドメイン名です。
0220216
NGNGC:\work\xxx.libxxx\
というフォルダを作ってそこに置いてみてもだめでした。
0221デフォルトの名無しさん
NGNGできるなら注意点を教えて欲しいです。
0222デフォルトの名無しさん
NGNGc:\Docu...\username.LIBxxx\...\hoge\lib\にライブラリファイル全部移しても
全然問題ないのだが。
ライブラリファイルのディレクトリがちゃんと通ってないのでは?
かオブジェクト/ラブラリモジュールの中に*.libの綴りが間違ってるとか?
0223デフォルトの名無しさん
NGNG0224216
NGNG「ファイルをプロジェクトに追加」でそのライブラリファイルを指定して追加しても、
リンク時にそのライブラリに入っているはずの関数が未解決になるんです。
ほかのフォルダに移してリンクすればちゃんとできます。
>219の\projectのフォルダを丸ごとC:\workとかに移動すれば、
そのままでリンクが通るのに、
パスの途中に*.lib*という名前のフォルダがあるとだめなんです。
いい忘れてましたがOSはWindows2000です。
0225デフォルトの名無しさん
NGNGCharSetでSHIFTJIS_CHARSETはあるのですが、Unicodeにあたるものが見つかりません。
よろしくお願いします。
0226SevenTH@SUNDAY
NGNGUnicodeのAPIを呼び出す。
0227デフォルトの名無しさん
NGNGなるほど、
TextOutW( dc, 0, 0, L"\x2665", 1 );
これで出来ました。
ありがとうございました。
0228デフォルトの名無しさん
NGNG今回はじめてウィンドウモードでプログラム組んでみたんですが
640*480にしても、タイトルバーなどを含めて640*480に
なってしまいます。描画可能領域を640*480にするには
どうしたらいいんでしょうか?
0229デフォルトの名無しさん
NGNG双方の DLL でリンクするランタイムライブラリの種類に注意すべし。
シングルスレッド/マルチスレッド、スタティックリンク/ダイナミックリンク、…。
0230デフォルトの名無しさん
NGNGAdjustWindowRect
0231デフォルトの名無しさん
NGNGそのAPIを検索したらわかりました。
ありがとうございます^^
0232デフォルトの名無しさん
NGNG実装方法がわかりません。どなたか教えていただけませんか?
0233デフォルトの名無しさん
NGNGドラムのデータの持ち方か?
アニメーションの方法か?
0234デフォルトの名無しさん
NGNGアニメーション方法です。
0235216
NGNGむーん。
SSEをサポートしているCPUなんで、IllegalInstructionが送出されること自体が
おかしいような‥‥
「ハンドルされて無ければ停止」を試してみたいですが、手元に環境が無くて。
明日試して見マス。
0236デフォルトの名無しさん
NGNG辛く無いですか?
0237チビ
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGコンパイルオプションに -MT (マルチスレッド対応)をつけた途端に
作成中のプログラムの挙動がおかしくなりました。
コンストラクタの初期化リストで NULL に設定したメンバの値が
勝手に何か別の値に書き換えられてしまうのです。
コンストラクタ内で MessageBox で確認すると NULL になっていますが、
メンバ関数を呼び出した時、書き換えていないはずの値にゴミが入っています。
関係する全てのファイルをマルチスレッド対応ライブラリにリンクするように
変更しましたし、まだライブラリを変更しただけで、コード内で
別スレッドを作成したりはしていませんので、別スレッドが書き換えているという可能性も低いです。
どうしてこうなってしまうのでしょうか?ご存知の方いらっしゃいましたらお願いいたします。
0240デフォルトの名無しさん
NGNGどうしてって、潜在的なバグが表面化しただけだろ
Bounds CheckerとかPurifyで確認しろ
0241デフォルトの名無しさん
NGNGVC++でゲーム作ろうとおもってるのですが、
簡単なサイコロ目当てゲームをとりあえずやってみようとおもってるんだけど、
とりあえず、普通のウィンドウズようアプリ(アイコンクリックしたら起動、DOS窓じゃない)
って状態にもっていきたい。
とりあえず空っぽのなんの機能もないウィンドウは作った。
そこにC++のメインのゲーム処理ソースは一体どこに書いたらいいの?
クラスとかたくさんありすぎてわけワカメです。
0242デフォルトの名無しさん
NGNGタイマーイベントでいいんじゃないか?
0243デフォルトの名無しさん
NGNGななにそれ!?
0244デフォルトの名無しさん
NGNG検索すれよ。
0245デフォルトの名無しさん
NGNGあったけど、意味がわらん。
0246デフォルトの名無しさん
NGNG全部説明させる気かよ。
なんか本でも買って読めよ。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGで字に下線つけるのはどうすればいいですか?
普通にVC上でメニュー作る時に
キャプションに 開く(&O)
ってやるかんじでできる下線です。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGだとできました。
ただpCmdUI->SetText("hage\t&hoge");
とするとだめでした。
こういうもんですか?
0251デフォルトの名無しさん
NGNGVBで走らせてみると、”ActiveXはオブジェクトが作れません”とかなんとかいわれる。
仕方ないから本のサンプルコードコピって試しても同じだった。
状況;
本の環境:NT,
自分環境:98
レジストリ登録は行われてる。
VBのオブジェクトブラウザでも見れる。
VB上でのオブジェクトの宣言は問題ない。
メソッドやプロパティにアクセスすると上記のエラーが出る。
って感じなんです。散々調べたんですがもうギブです。
誰か原因&解決法教えて下さい。
0252デフォルトの名無しさん
NGNG関数から抜ける時に _BLOCK_TYPE_IS_VALID っていうアサートが出ます。
ランタイムの delete 演算子が多重 delete 等の時に発している警告のようなのですが、
何故でるのかがわからないのです。
「関数から抜ける時」に発生するので、auto 変数だと思うのですが(ちなみに auto_ptr などは一切使っていません。)
これはどういう状況の時発生するのでしょうか?
指針のような物でもよいのでアドバイスを頂けないでしょうか?
よろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています