VisualC++相談室 4

このエントリーをはてなブックマークに追加
MSDN Online Jananは、日本語のドキュメントしかない。
ここで見つからなかったら、
http://msdn.microsoft.com/library/
MSDNライブラリ サブスクリプションの無料クーポン使おうと思ってて
箱にしまっておいたら気付いたときには期限切れてた(笑

英語でよければ、Platform SDKの最新版をDLすればSDKの説明は読めるよ。
Onlineのは正直言って使いにくい。
ぐ、、、MSめ、、、、、ライブラリページ検索使えないし
MXで調べてみても、転がってないし。
困った(;´Д`)
>877
転送領域が重ならない限りmemcpyが速度的にベスト
memmoveはインライン展開最適化の対象になってないので常に関数呼び出しになる
(memmoveのソースを見たがごく普通のコードなのでforと大して変わらないはず)
memcpyはリリースビルドではインライン展開最適化の対象になってて
rep movsd+rep movsbにその場で展開されるので速度的に有利
(ちなみにmemsetもrep stosdに展開される)
まぁ特別問題が無いならばVCではmemcpy使えってことだ
>>885
ライブラリページの説明をちゃんと読んだ?


MSDN ライブラリの操作方法
MSDN ライブラリから目的の情報を取得する以下のような方法があります。

左側の目次を使用して、MSDN ライブラリをブラウズする。
MSDN Online サイトの[このサイトの検索] を使用して、特定のキーワードから検索を行う。
888877:01/11/26 12:38
貴重な意見ありがとうございます
かなり参考になりました
889デフォルトの名無しさん:01/11/26 12:57
オブジェクトへのポインタの配列って動的に作れるのでしょうか?
Object** obj=new....
みたいにしたいのですけど
890お胸おっぱい:01/11/26 13:08
>>889
Object **obj = new (Object *[n]);

または MFC なら CObArray か CObList を使うとか。
891お胸おっぱい:01/11/26 14:22
スマソ、前後の "(" ")" 要らんわ。
892889:01/11/26 14:30
できましたー
ありがとさんです
名前が激しいですな(^^;
初心者です。唐突な質問ですいません。
外部依存関係というフォルダは何なのでしょうか?
また、それはどうすれば作成できるのでしょうか?
お願いします。
894デフォルトの名無しさん:01/11/26 19:20

標準ヘッダーファイルで

#if(WINVER >= 0x0400)
#define VK_PROCESSKEY 0xE5
#endif /* WINVER >= 0x0400 */

のような記述がありますが 0x0400 ってどのWindowsですか?
95ですか?

余談ですが先日初めて職務質問されました。
7時ごろに人気の少ない道を通っていたら通りかかったパトカーに止められました。
プログラマーって怪しさが表ににじみ出るものですか?
895デフォルトの名無しさん:01/11/26 20:33
コマンドとかCVARの名前変更して
TSCに引っ掛からないようにビルドし直す方法教えて
896デフォルトの名無しさん:01/11/26 22:22
少しC言語をやっているものなんですが、
時々ソースコードの中に
"\xxx\xxx\xxx\xxx\xxx\xxx"というような文字列があるのですがこれは
どうすれば普通の文字に戻せるんでしょうか?
例えば"\253\104\114\266"とかなんですが・・・
ォDLカ
コピペしてrubyにでも喰わせろ。
#ruby -e 'print "\253\104"'
899デフォルトの名無しさん:01/11/26 22:47
ある基底クラスポインタが指すオブジェクトが、
あるクラスを継承しているかどうか調べるには、
どうすればいいのでしょうか?
rtti有効にして、dynamic_cast<あるクラス>(基底クラスポインタ)の返値を見ろ。
ダメだ。コピペしてperlにでも喰わせろ。
#perl -e 'print "\253\104"'
つか、みんなrootで実行デスカ‥‥
あるいは、コメント?
903896:01/11/27 00:11
897さんの言う通り変になってしまうんですが単なるアルファベットになるみたいなんです。
904ひろし:01/11/27 00:34
画像データーベースを作ったかた。デジタルカメラ組み込みのしごとがあります。
但しDirectShow、Twainを使わなければなりません。
また少し変わったSDKで機械語ルーティン集ではありません。あくまで機械語部分はシステムに埋め込まれてしまい各機能の呼び出しタイトルだけが書かれているものです。
ご興味ある方いらっしゃいますか?
マニュアルは今のところ英語です。
>>903
ASCII じゃないだろ。
EBCDC じゃないのか?
UNICODEとか
>>906
アルファベットになる…ってーのを信じるなら、それはない。
ちなみに、そーいうファイル作って秀丸でUNICODE表示すると、
「yhrC」みたいな表示がされるから、
# 正確な表記ではない。よく知らんが、欧州系の装飾付きアルファベット
UNICODEのような気がする。内容の意味は分からんが。
>>893
ワークスペースウィンドウのFileViewの話だよな?
プロジェクトに明示的に追加したヘッダファイル(Header Files の下)以外で
参照しているヘッダファイルがあると、自動的に「外部依存関係」に追加される。
無理して自分で作るものではない。
プロジェクトに含まれるヘッダファイルならきちんと Header Files の下に
移動しておくのが吉。

>>894
NT。詳しくはGetVersionExのヘルプを参照。
>>909
WINVER 0x0400 だと Windows 95 or NT4.0 です。NT only にしたければ _WIN32_WINNT 使わないと。

詳しくは Platform SDK のドキュメントで [Using the SDK Headers] を検索。
912たろ:01/11/27 13:04
恥かしい質問でしたらごめんなさい。

VC++にてダイアログベースでプログラムを作っているのですが。
ダイアログ画面を表示する前に、個別のチェック(ファイル有無チェック等)かなんかでNGの時
画面を表示させずに、MSGBOXを表示させてそのまま処理を終了させたいのですが、
どうすればよいのでようか?
ダイアログ画面を表示させたくないのです。

宜しくお願いします
913デフォルトの名無しさん:01/11/27 13:10
InitInstanceでダイアログを開く前にエラーチェックしろ。
914たろ:01/11/27 13:13
>>913
ありがとう御座います。
900こえて、黄色信号がでてますので、新スレ作りました。
続きはこちらでどうぞ。
http://pc.2ch.net/test/read.cgi/tech/1006834463/l50
916初心者:01/11/28 08:42
非常に初歩的なことですいません。

MFCをやっているのですが、ハンドルというものがでてきて、とりあえずはじめでてきたときに、「IDみたいにとらえて・・・」のような記述があったのでそのようにとらえていたんですが
「メンバ変数にハンドルをもつクラスが・・・・」のような記述を別で見ました。なんのことだか意味がわからなくなってしまいました。。

どういうことなんでしょうか??
917デフォルトの名無しさん:01/12/04 14:22
>>916
うーん、そのクラスのメンバ変数の中に、ハンドルがあるっていうような
意味だとおもうんだけど、
この場合ハンドルっていうのはクラスの実体のIDみたいなもので、
メンバ変数としてもつことによって外から容易に参照できるようになってるのだと思う
918デフォルトの名無しさん:01/12/04 18:26
同時にファイルの複数開きたいと考えています。
WinAPIのGetOpenFileName()を用いて複数ファイル名を
取得するにはどのようにすればいいですか?
919デフォルトの名無しさん:01/12/05 18:15
>918
lpofn->lpstrFile
| For Explorer-style dialog boxes, the directory and file name strings are
| NULL separated, with an extra NULL character after the last file name.

MFCのソース、DLGFILE.CPP の CFileDialog::GetNextPathName あたりも参考に。
920デフォルトの名無しさん:01/12/07 11:33
DCB構造体の、fAbortOnErrorなんですけど、
Win2000だと設定通り動くんだけどWin98でやったら、TRUEにしても
エラーのときに処理を中断しないんです(FALSEと変わらない)。

同じような人いませんか?どっちでもいいんだけどなんか気持ち悪いです。
921デフォルトの名無しさん:01/12/31 02:57
1GBを越える画像を印刷するには?
途中で欠けてしまいます。
どうしよう・・・・・
>921
その画像うpして
てかどういう不思議装置で印刷するだろう、、、
924 :02/01/04 22:42
FAQっぽいけど、、、
system("***.exe a.tex b.tex");
みたいなのをDOS窓を出さずにできる方法はないの?
925sage:02/01/04 22:44
924
sageで。
926  :02/01/11 22:47
しつもん!

#include "stdafx.h"

#include <stdio.h>
#include <string.h>
class TT{
private:
public:
char *name;
TT(char *_in){
name=new char[strlen(_in)];
strcpy(name,_in);
}
~TT(){
delete name;
}
void getName(char *val){
strcpy(val,name);
}
};

int main(int argc, char* argv[]){
TT *a=new TT("aaaa");
delete a;
return 0;
}


で、デストラクタでnameをdeleteするとデバッグエラーというダイアログが現れますが、
なんでですか?
デリートすることが間違っているということでしょうか?
> name=new char[strlen(_in)];
> strcpy(name,_in);
メモリの書きこみ違反です。
928デフォルトの名無しさん:02/01/12 00:48
質問です。
Office XPみたいな右クリックメニューはどうやって作ればいいんでしょうか。
929926:02/01/12 02:27
>>927
え、、書き込み違反なんですか?
すいませんが、僕には何がまずいのかわかりません。
よろしければ、回避法等、詳しく教えてくださいますか?
930デフォルトの名無しさん:02/01/12 02:35
delete [] name; と書いてみる。
>>929
'\0' の分が抜けてる。

それと C++ 使うなら std::string 使った方が何かと楽だぞ。
つーか、なんで今ごろ旧スレ age るかなぁ

新スレ> http://pc.2ch.net/test/read.cgi/tech/1006834463/l50