トップページ⇒tech
948コメント340KB

VisualC++相談室 2

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001いさましいチビの女 NGNG
VisualC++関連の話題を扱うスレです。
前スレが900を超えたので2を作りました。

↓前スレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=970607517&ls=100
0002デフォルトの名無しさんNGNG
http://www.fujitsu.co.jp/hypertext/softinfo/product/use/JBK/gui/ListView/ExampleGuide.html
ここの画面のようなことをしたいのです(リストで選択したら
その内容がエディットボックスに書き込まれる)
が、リストから値を取り出す方法をだれか教えて下さい
どこか、参考になるページでもいいです。おねがいします。
0003名無しさん@お腹いっぱい。NGNG
891 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:43
プログラムしかできない理系最下層軍団早く氏んでくれ。


892 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:45
プログラムしかできない理系最下層軍団早く氏んでくれ。893 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:45
プログラムしかできない理系最下層軍団早く氏んでくれ。

894 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:47
まあ馬鹿だろうからプログラムもろくにできないだろうけどね

0004デフォルトの名無しさんだもんNGNG
>>2
GetItemTextで取得できるよ。
ただ、IMCHANGEDやITEMCHANGINGイベントないでやったら今選択した奴じゃなくて
一つ前のが取れたと記憶してるけど。 そこら編チョコっと注意かも。

0005デフォルトの名無しさんNGNG
ダイアログベースのOnInitDialogからOnEndを呼び出して、
OnEnd中でAfxGetMainWnd()->PostMessage(WM_COMMAND, ID_APP_EXIT);
を呼んでもすぐには終ってくれません。
何で終らすのが良いのでしょうか?
但し、この終了処理はOnInitDialog以外からも使います。
0006デフォルトの名無しさんだもんNGNG
>>5
EndDialog(0);
でいいんじゃないの?

0007デフォルトの名無しさんNGNG
>>6
ダメでした。
AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_APP_EXIT);
が働かずに(つーか待ち状態?)でプログラム終らずに、OnEnd()から
戻ってきちゃう・・・・
0008デフォルトの名無しさんだもんNGNG
>>7
何をしたいかがいまいちわかんないです。
自アプリを終了したいの?
ダイアログのアプリなんだよね。
で、ID_APP_EXIT は自分で定義したの?

とりあえず自分を終わらせるなら、
EndDialog(0);
実行するだけで良いと思うんだけど。
::PostMessage(this->m_hWnd,WM_QUIT,0,0);
とかね。


0009デフォルトの名無しさんNGNG
ダイアログのハンドル値失ってない?
つか、
EndDialog(hDlg,(LOWORD)0);
がふつうでない?
0010デフォルトの名無しさんNGNG
クラス属性ってどうやって実装するんですか?
static int XX;
のようにクラス宣言の中にかくだけじゃ駄目ですか?
早急にレスきぼーん。
0011SAGENGNG
>9
MFCの話だろ、たぶん、おそらく。

>10
更に、どっかしらのソースに
int CHoge::XX;
って書く。
0012デフォルトの名無しさんNGNG
初心者です。こーゆーのはダメなんですか?

pDC->Ellipse(a - pDoc->m_Array[i], b - pDoc->m_Array[i],
a + pDoc->m_Array[i], b + pDoc->m_Array[i]);

pDC->Ellipse(c-10,j*10-10,c+10,j*10+10);

上はうまく描画されるのに、下はうまく描画されません。
どうしてかわかりません。教えてください。

a〜dの値は固定なのですが、iとjは条件によって変わります。
ちなみにjは、その直前でのループを回った回数です。
よろしくおねがいします。

0013デフォルトの名無しさんNGNG
a,b,c,dの値,i,jを決定するルーチン(ループっぽいが)も示すべし。
0014デフォルトの名無しさんNGNG
VC++6.0のリファレンスライブラリやプログラマーズガイドは
買ったほうがいいのでしょうか?
(VC++を手に入れたばかりです)
001512NGNG
>>13
SetTimerを使った実験してます。
x=300の軸上に描いた円を、ファイルから読みこんだデータをもとに動かそうとしてます。
タイマーで画面をInvalidateRectして、以下の関数をOnDrawで呼んでます。
タイマーが来るごとに、i++してます。

void CTimerView::DrawVelocity(CDC* pDC, CTimerDoc* pDoc)
{
//変数のコマごとの初期化
int kk = 0;
tempVol = 0;
realVol=realVol+pDoc->m_Q[i-1];
//どこに描画するかの判定
for(int k=nPoint*(i-1); tempVol<=realVol; k++){
if(k==nPoint*(i-1)){
tempVol = pDoc->m_A[k] * realDx / 2;
}
else if(k==nPoint*i){
tempVol = tempVol + pDoc->m_A[k] * realDx / 2;
}
else if(k>nPoint*i){
break;
}
else{
tempVol = tempVol + pDoc->m_A[k] * realDx;
}
kk++;
}
     //円を描画
     if(tempVol>=realVol){//原点(300,0)からループ分kkに移動した位置に描け。
pDC->Ellipse(300-5, kk*7-5,300+5, kk*7+5);//(注)
}
else{//軸の長さを超えた場合は、原点に描け。
pDC->Ellipse(300-5,-5,300+5,5);
realVol=0;
}
return;
}
こんな感じです。
実行してみると、(注)のところにkk=0の状態でいきます。
ずっとkk=0の時の位置に円が描かれるだけで動きません。
同じアルゴリズムをmfcAppwizardではなく、Win32ConsoleApplicationで検証したところ、
kkの値はちゃんと変化していました。(timerの変わりに、外側にもう一つforループをつけた。
初心者なものでWin32ConsoleとmfcAppwizardでのコードの書き方の違いがわかってないからだと思いますが、
どこが間違えてるのかわかりません。
よろしくお願いします。
0016デフォルトの名無しさんNGNG
インデントシヨウヨ…
0017SAGENGNG
>>15
タイマーが呼ばれてないだけでは?
DrawVelocity に入るときの i の値はちゃんと変化してるのか?
0018デフォルトの名無しさんNGNG
面罵名がiってのもなんだかなあ
0019デフォルトの名無しさんNGNG
CPUの MODEL name の求め方ってご存知のかたいませんか.
たぶん、Family Model Steppin あたりの数値から、求めているのか音も思いますが.
(apiではPentium2/proまでしかわからず、CeleronとかPentium3とかわかんないので.)
HDDBENCHIとかどうやってるんだろう・・・・
0020まんこNGNG
SDKとMFCではSDKからやったほうがいいのでしょうか?
皆さんはなにからやりましたか。?
0021デフォルトの名無しさんNGNG
しつもん。
MSDNヘルプ(標準でついてるやつ)にWindowsAPIのリファレンスって
載ってないんでしょうか?
0022デフォルトの名無しさんNGNG
載ってるよ。ヘルプの使い方を覚えなさい。>21
0023デフォルトの名無しさんNGNG
>>21
プラットフォームSDKのところ
0024名無しさんi486NGNG
>>19
http://www2s.biglobe.ne.jp/~maekawa/dev/vc/cpu/index.html
見れ見れ。
0025名無しさん@お腹いっぱい。NGNG
VBのSendKeysみたいなことをして、他のAPを操作したいのですが、どうすればいいでしょう。
0026名無しさんi486NGNG
>>25
SendKeysってなに?どんな動作するの?
0027名無し~3.VOBNGNG
通信関係のプログラム書くときって、
MFC使った方が無難でしょうか。
実行時にランタイムが必要ってのがヤなんですけど・・・
0028名無しさんNGNG
なんだか、時々
関数消すと
ClassView消えるんですけど
0029名無し~3.VOBNGNG
たまにあるよね、それ・・・・。なんでだろ
0030デフォルトの名無しさんNGNG
>>28
一旦VCを終了させ、
clwファイルを削除してからそのプロジェクトを再度開き、
ClassWizardを起動して内部情報を再構築。
あとコピペで同じソース使いまわしてると、
//AFX〜のマクロに旧関数のソレが含まれていたりして
ClassWizardが動作不正起こす。

0031名無しさん@お腹いっぱい。NGNG
VC5のプロジェクトを開くと、VC6が落ちるのって俺だけ?
0032デフォルトの名無しさんNGNG
>31
そうみたいだね。
0033デフォルトの名無しさんNGNG
 VC6でMFCを使ってるのですが、window上にエリア選択のための矩形を書きたいのですが、何を使うのが良いのでしょうか。
 それとも、単にマウスドラッグの始点と終点を計算して、自分で点線を長方形になるように描かなければいけないのでしょうか。このためだけのクラスってあるんですか?
0034デフォルトの名無しさんNGNG
>>33
DrawFocusRectっつーAPIも一応用意されとるよ。
0035デフォルトの名無しさんNGNG
すいません初心者です。
VC++でリソースを作って各コントロールの文字列の
フォントサイズを変えたいんですけどどうやればいいんでしょうか?
0036デフォルトの名無しさんNGNG
間違えてさげちゃった(--;
0037デフォルトの名無しさんNGNG
C#とC++はどっちが速いんですか?

0038デフォルトの名無しさんNGNG
>>33
おお。
34さんが答えてるとこアレだが、ちょうど
俺もそこなので。

ビュークラスの中でラスターオペレーション
使って線を描く。自前。
んで、OnSetCursor内でトラッキング。
もっと素敵な方法あったら、誰か教えて。
0039デフォルトの名無しさんNGNG
うーん、マウスのトラッキングはGetCaptureでマウスメッセージ全部取らないと、
マウスカーソルがウインドウの外に出たとき拾えないくなるんだけどなぁ。
0040デフォルトの名無しさんNGNG
>>14

MSDNとほとんど同じ内容だった気がします。

>>25

SetKeyboardStateかkeybd_eventとかじゃ駄目ですか。あまり知らないんですが。
004119NGNG
>>24
thanks ここからどうやってCPUを判別したらいいか悩んでるんですけど。
ある程度はレジストリから取得できるんですけど、その先が・・・
2次キャッシュのサイズとかの取得に方法とかですね・・・
004238NGNG
>>39
某AutoCadモドキ選択を作ってるんです。
カーソルがはみ出た時の処理がなかなか深い(手抜きとも言う)
まともなドラッグなら39さんの処理は要るね。

さっき「ラスター…」でヘルプ引いたら無かったので、
SetROP2/GetROP2で引いてください。
0043デフォルトの名無しさんNGNG
 33です。自作自演ってわけじゃないんだけど、いいのを見つけたんで素直に報告。
 MFCにCRectTrackerというクラスがあって、単にOnLButtonDown内でTrackRubberBandメソッドを呼んでやるだけで簡単にできました。
 一件落着。(^_^)
0044デフォルトの名無しさんNGNG
LANケーブルでパソコン(1)−パソコン(2)を接続して
パソコン(1)でデータを転送し、パソコン(2)でデータを読み取って
パソコン(2)からCOMポートで接続された他の機器へデータを流す
には、パソコン(2)での処理は、どのように作り込めばいいですか?
(パソコン(1)からは5秒毎に1回、1日中命令を出します。)
0045七誌NGNG
MDBからデータを取得するために、次のようなコードで
レコードセットに対してSQLを渡そうとしているのですが、
1つめのような短いSQLは、実行できても、2つめのような
長いSQLは実行できません。なぜでしょうか。
長い方のSQLには途中で変数をつないであったりするのですが、
出来上がったSQLをACCESSで直接実行しても、問題はありませんでした。
コンパイル,リンクは大丈夫なのですが、実行時にASSERT?がでます。

#include <afxdao.h>
CDaoDatabase MyDB;
CDaoRecordset MyRs(&MyDB);

void CSearchDlg::OnButton1()
{
CString DdPath;
CString SQL;

DbPath = "c:\\database.mdb";
MyDB.Open(DbPath);

/* こんな短いのはOK
SQL = "SELECT * FROM TABLE_ABC;";
MyRs.Open(dbOpenDynaset,SQL,dbReadOnly);
*/

/* 上の変わりにこれはNG
SQL = " SELECT"
" TABLE_ABC.field01"
",TABLE_ABC.field02"
",TABLE_ABC.field03"
   /*ここに長いSQLを記述
MyRs.Open(dbOpenDynaset,SQL,dbReadOnly);
*/
}
0046デフォルトの名無しさんNGNG
C#ってC++のコーディングスタイルもサポートしてるんだっけ?
0047デフォルトの名無しさんNGNG
>>44
(2)の方はソケット開いて待機(サーバー)
(1)の方が(2)に繋ぐ(クライアント)
(2)がデータ受け取ったらCOMポートに送信。
必要なら(2)にキャッシュ機能を付けデータがある程度たまったらCOMポートに送る。
(2)にGUIを付けたいならマルチスレッドにし通信機能を別スレッドにやらす。
0048デフォルトの名無しさんNGNG
SDIで,ビューの基底クラスをCViewのまま
スクロールバーを追加したいんですが,どうしたらいいでしょうか?
0049名無しさん@お腹いっぱい。NGNG
>>48
スタイルを変える。
0050デフォルトの名無しさんNGNG
>>47
44です。ありがとうございました。
で、またまた質問なのですが、
初心者だと思って聞いて下さい。
(2)がデータを受け取ったらと有りますが
「データを受け取ったら処理をする」という
作り方が分かりません。
教えて下さい。
0051デフォルトの名無しさんだもんNGNG
>>50
やり方なんてコーディングしだだろうけど、
socketからの読み出しなら recvfrom 使うだろうから、
そこで、受信パケット識別後必要なものなら COMポートに送信。
とか。
0052ひつじさんNGNG
すごい困ってるんですけど、VC++6.0でプロジェクト名を変更
したいときって、どうするの?手作業??
一度つけたら変更不可なの?
0053名無しさんNGNG
>>52
俺は余計なファイル(*.ncbとか)を消した後、全テキストファイルで
文字列置換やってる。
今のところ不具合はないよ。
0054ひつじさんNGNG
>>53
やっぱそんなベタな方法しかないのか・・・・?
クサレMSめ。
0055七誌NGNG
>>45
自己レス
SQLを格納しているCString型の先頭にブランクが入っているのが
原因のようです。現在、調査続行中。
解決かも・・・
"SELECT"と" SELECT"の違い!?
これぐらい解読して欲しいと思うのですが、C++としてみた場合、
相当意味が違っているのでしょうか
0056デフォルトの名無しさんNGNG
入力したアカウントが
アドミニ権限を持っているかどうか
知りたいのですが
どのように作り込めばいいですか?
教えて下さい。
0057デフォルトの名無しさんNGNG
インスタンスハンドらってなんだか教えれ
0058デフォルトの名無しさんだもんNGNG
>>56
NetGroupGetUsers とか NetGroupGetInfo などを見てみてください。
0059デフォルトの名無しさんNGNG
>>58
LPBYTE bufptr;
NetGroupGetInfo (
NULL,
"Administrator",
0,
bufptr
);
というふうにしたのですが
error C2065: 'NetGroupGetInfo' : 定義されていない識別子です。
とエラーが出てしまいます。
どのようにすれば解消されるのでしょうか?
0060あげNGNG
あげ
0061デフォルトの名無しさんNGNG
イベントログに出力するさいのメッセージファイルの作り方(mc.exe)は
分かったんですが、どう組み込んだら良いんでしょうか?
0062デフォルトの名無しさんだもんNGNG
>>59
ちなみに、NT系専用です。
で、Lm.h をインクルードして。
Netapi32.lib のリンクも必要かも。
ふぁいとっ。

006359NGNG
>>62
ありがとうございます。
で、
2番目の引数なんですけど
グローバル グループ アカウントの名前を含む、
Unicode文字列を指すポインタです。
となっているんですけど、
LPWSTRってなに?
どういうふうに設定すればいいの?
Administratorを設定したいよ〜!
006459NGNG
分かりました。
もういいです。
ありがとうございました。
0065デフォルトの名無しさんNGNG
MessageBox() に表示するメッセージのフォントを変えるにはどうするの?
0066デフォルトの名無しさんNGNG
char *abcde;
CString xyz;

xyz = "あいうえお";
abcde = (char *)calloc(10,sizeof(101));
//これで、動的に10個の配列が確保できたと信じています

この時xyzの内容を*(abcde+5)にセットするには、どうすればよいのでしょうか
0067デフォルトの名無しさんNGNG
66補足
abcdeの配列の5番目の間違いです
*(abcde+5)だと、へんですよね
ん?なんか、配列の宣言も怪しくなってきた

101の長さのabcdeを10個、確保するというのもあってますか?
0068>65NGNG
出来ない(と考えたほうがいい)です。一から自作自演してください。
0069げへへっNGNG
>>65
システムフォント変えればできるんじゃないの?
0070デフォルトの名無しさんNGNG
66です
2次元配列の取り方が根本的に間違えているんですね
newと、deleteで、動的に配列を作るコードを組んで出直します
0071クロネコNGNG
>> 66
いい加減に作ってみた。MFCはしらんので適当にあしらえぃ。

char * string="abc";
char ** array = malloc(10 * sizeof(char *));
for ( i = 0; i < 10; i++ ){
  array[i] = calloc(100 + 1, sizeof(char));
}
strncpy(array[5], string, 100);


つーかC版にいきなされ。
0072デフォルトの名無しさんNGNG
1は根鎌です。
0073デフォルトの名無しさんNGNG
age
0074デフォルトの名無しさんNGNG
>>72
衝撃の事実!神よ!
0075>65NGNG
Windows2000で実験。結論から言うと、
基本はダイアログなので変更可能。
他のWindowsではStaticコントロールのIDに違いがあるかもないかも。
Spy++とGetDlgCtrlID APIをうまくつかう。

こんな馬鹿馬鹿しいことやる理屈はないけど、たぶん背景色
もフォントも変えられるし。文字列の表示されているところに
動画を貼ったりもできる。

#include "stdafx.h"
#include <windows.h>
#include <tchar.h>

BOOL CALLBACK EChildProc(HWND hWnd,LPARAM lParam)
{
TCHAR str[255];
GetWindowText(hWnd,str,255);

if(lstrcmpi(str,_T("caption"))==0)
{
HWND bbb=GetDlgItem(hWnd,0x0000ffff);

HFONT ccc = CreateFont(15,0,0,0,FW_BOLD,FALSE,FALSE,
FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH,_T("MS ゴシック"));

SendMessage(bbb,WM_SETFONT,(WPARAM)ccc,TRUE);

SetWindowText(bbb,_T("変更"));
}

return TRUE;
}

DWORD WINAPI Thread(LPVOID lpVoid)
{
Sleep(50);
EnumChildWindows(NULL,EChildProc,0);

return 1;
}

int main(int argc, char* argv[])
{
CreateThread(NULL,0,Thread,0,0,NULL);
MessageBox(NULL,_T("text"),_T("caption"),MB_OK);

return 0;
}
0076>66NGNG
2バイト文字を扱うのにchar*を使うと計算が面倒なので
やめたほうがいい。
CStringの使える環境でcallocなんて使うのもよしたほうがよい。
文字列操作はメンバ関数を使えばおおよそのことはできる。
それでもだめならSTLの<wstring>+<algorithm>に移行する。
0077デフォルトの名無しさんNGNG
ActiveXってのを使いたいのだが使い方が良く分からない。
COMだかOLEだか良く分からんがそれの知識も必要らしい。
どこか勉強にお薦めのサイトとかないですか?
ドキュソ学生に亜依の手を!
0078デフォルトの名無しさんNGNG
>>77
その前に漢字を勉強しろ!!

0079デフォルトの名無しさんNGNG
VC++6.0使ってます。
円周率はどうすれば扱えるのでしょうか。
多分、円周率の近似値が定数として用意されてるような
気がするですが、変数名が分かりません。
よろしくお願いします。


0080名前ついてますか?NGNG
Cだと #include <math.h> で M_PIなんだけどねえ...
0081デフォルトの名無しさんNGNG
math.h M_PI
0082SAGENGNG
>>79
探すの面倒なら自分で定義してしまえい。
0083>77NGNG
おもに、自己登録型のCOMのことをActiveX
というらしいので、まずはCOMの勉強をしよう
本屋にいけば、COMの本はざくざくある。
無駄なお金をかけたくないなら、
MSDN-Onlineで、Dr.GUIの記事を読もう。

MSDNのCDが手に入るなら、97年暮れくらい
の記事に集中して特集されいる。

ただ、COMはWindows 1.0全体より複雑だと
いわれるくらいのものなので、それなりに習得に
根気も時間もいることを覚悟にしないといけない。
0084>80NGNG
c++だと、
<cmath>だね。
0085デフォルトの名無しさんNGNG
テキストを改行するにはどうすればいいんですか?
\nを使っても変な点が出るだけなのですが。
0086偽名無しさんNGNG
\r\n
0087デフォルトの名無しさんNGNG
_variant_t とか _bstr_t の型キャストの方法がよく分かりません。
そもそもこれらがどんな作りになってるのかとか、メンバ関数の
解説とかが詳しく載ってる本が殆ど見あたらない...
何か良い情報源はないでしょうか。
0088偽名無しさんNGNG
MSDN
0089デフォルトの名無しさん NGNG
超初心者質問でスイマセン。
ドット絵風の絵を描くペイントツール作ってます。
ある矩形領域内にマウスポインタがある場合にその矩形領域を塗りつぶす
というようにしてるんですけど、これだとマウスを速く動かしたときに
線ではなくて点になってしまうんですが、どうしたら線にできるのでしょうか。
一般のペイントツールみたく、MoveTo、LineToのような方法はないでしょうか。
0090デフォルトの名無しさんNGNG
 MDIでアプリを作ると、子フレームはすべて親フレームに納まるように作られて、子フレームが親フレームから出るようなことはありませんよね。そこを、子フレームが自由に親フレームの外に出るようにスタイルを変えたいのですが、いったいどこを変えるとそういう効果を出せるのでしょうか。
 よろしくお願いします。
0091デフォルトの名無しさんNGNG
MultiByteToWideCharって使ったことある方いらっしゃいますか?
このAPI使ってS-JIS→UNICODE→EUCって変換は可能なのでしょうか?
MFC or SDKでs-jisからeuc変換したいのですが・・・。
0092デフォルトの名無しさんNGNG
>>77
ActiveXなら吉田弘一郎「ActiveX教養講座」が面白い。
誤字脱字が多いのがこりゃまたうける。
ActiveXがどんなもんか楽しく覚えるにはいいと思う。。。
0093デフォルトの名無しさんNGNG
>91自分で試せ
0094デフォルトの名無しさんNGNG
便乗・・・ってわけではないのですが「ウムラウト」を表示する
方法を教えていただけませんでしょうか?あのaとかoの上に
..がついてるヤツのことです

今はそこだけ画像に置き換えているのですが、これだとフォント
サイズ変更したときとか不便で不便で・・・
0095デフォルトの名無しさんNGNG
文字コード表でも見ろ。>94
009694NGNG
>>95
えっと、それがないんですよ、ウムラウトは
ギリシャ文字はあるのに・・・
0097SAGENGNG
>91
無理

>94
Unicode対応のフォントで 00e4 とか 00f6 を書くべし〜
009891NGNG
>>93
はい。試しました。
結局このAPIはワイド文字列に変換するためのもので、
変換をおこなうときUTF-8変換とかを指定できるだけのものでした。
それにしても変な関数名だなこれ。。。
どっちがUNICODEか分かりにくいよ>M$

>>97
はっきりした回答どもです^^


0099デフォルトの名無しさんNGNG
MFCを使用しています。
ClassWizardを使用しCDialogから派生させてCSubDialogというクラスを
作ったのですが、そのCSubDialogからまたClassWizardを使用して
派生させクラスを追加するということはできないのでしょうか?
基本クラスが自分で追加したクラスの場合は自分でソースに追加しなければ
いけないのでしょうか?
0100[Q]NGNG
[Q]
CEditView をログウィンドウ(ex. Iria の下ウィンドウ)
のように使いたいのですが、
単純に SetWindowText しても一行が書き換わるだけでうまくいきません。
行を Append していくにはどうしたらよいのでしょうか?
0101デフォルトの名無しさんNGNG
 ひとつ教えていただきたいのですが、
 MFCを使っていますが、ID_FILE_NEWなどのcommandを、ボタンやメニューによってではなく、プログラム内のメソッドなどで発生させるようにするにはどうしたらよいのでしょうか。
 よろしくおねがいします。
0102デフォルトの名無しさんNGNG
SendMessage
0103SAGENGNG
WM_COMMAND
0104( ´∀`)さんNGNG
C++のおすすめ入門誌などを教えてください。
0105デフォルトの名無しさんNGNG
 CWinAppクラスにWriteProfileStringという便利なメソッドがありますが、WinNT上ではレジストリに情報が記録されるので、あまり大容量のデータ…例えば全部で数メガとか…を保存するのはマズかったりするでしょうか。それとも、気にせずにがんがんレジストリを使ってしまっていいのでしょうか。記録内容はアプリの設定などですが、その設定のバリエーションが膨大なのです。
 よろしくおねがいします。
010694NGNG
>>97
キーワードありがとうございますっ!
一行でこんなに助かったのは初めてです。感謝だなぁ。
0107>100NGNG
SetWindowTextしたら、すべての文字列が当然
置き換わるはずなのに。

追加したい場合は文字列に改行をいれてみましょう。
もしくはエディットビューなど使わず、リストボックスや
リストビューを使うべきです。
0108>105NGNG
ことレジストリとなると敏感な人が多いですが、
どうせ、COMが勝手にばんばん使って、
われわれの故知らぬところで、肥大していきます。

100Kや200Kのレジストリは設定の保持に使って
もぜんぜん問題ありません。
有名なところでは秀丸エディタがこの類です。

安全なINIファイル程度に考えてください。

まあ、いじるといろいろ面倒なことがあるので、独自の
設定ファイルのルーチンを組むのも手ですが。
(わたしのアプリの設定ファイルはみんなXMLになってます)

どうしても、レジストリが、
肥大するのが厭なら、HKEY_LOCAL_MACHINEなどの単一な
ハイブに書き込むのがいいです。(書き込めない場合もありますが)
0109>99NGNG
クラスウィザードに頼ってる人が
そんな奇妙なことは、やらない方がいいです。
0110デフォルトの名無しさんNGNG
>105
普通レジストリにはでかいファイルは書かない。
INIファイル(普通のファイルでも良い)に書いて
レジストリにはそのファイル名を書いとく。
設定の読み書きするときはレジストリからファイル名を読み込んで
そのファイルを読み込む。
0111デフォルトの名無しさんNGNG
>>108
うーん、確かにCOMは破壊的だね。
いくら自分で気を付けて無駄にレジストリを使用しないようにしてもばんばん重くしていく。

でもやっぱり100kや200kもレジストリ使われたくないです。
たとえ1kでも、どうしてもレジストリを使わざるを得ないようなデータ(ファイルの関連づけとか)以外は極力INIファイルにデータを保存して欲しいなあ。
0112>110NGNG
たしかに数メガはやばいかな、、。

INIファイルの代替という旨、
MSが言ってるので、
10K程度なら気にせずに書き込んでるけど。
0113108>111NGNG
INIファイルのサイズは32Kの壁がありますので。
ワタクシ的には使いたくありません。

というわけで、
コンスタントに存在するモジュールの場合は、
わたしの場合は、アプリと同じフォルダのXML
ファイルか、レジストリに保存しています。
本来ならシェルを使って設定ディレクトリにぶちこむ
べきですが。

設定ディレクトリへのパスはIE4.0が入っていないと、
わかりません。

アンインストーラーの用意ができてるのなら、レジストリ
のHKCRあたりに設定をぶちこむのはお手軽な手段です。
0114デフォルトの名無しさんNGNG
>107
なるほど。
CEditView だと SerializeRaw メソッドがあるので、
CEditView に文字列を保持しているかと思っていたのですがそうじゃないんですね。
じゃあおとなしく CString str += nextLine; とでもしてみます。

ありがとうございました。
0115デフォルトの名無しさんNGNG
OLEコントロール(ActiveXか・・・)を貼り付けて
F5を押すと、InitInstanceをコールしてくださいというようなメッセージが出て
ダイアログも出ずに終了するのですが、どこに何を記述したらいいのでしょうか
教えて下さい!
0116デフォルトの名無しさんNGNG
OnDraw関数の中でpDC->SetBkColorを使っても背景色が変わらないんですが、
どうすれば背景色を変えられるんですか?
Rectangleで塗りつぶすしかないんですか?
0117デフォルトの名無しさんNGNG
数値(int型やdouble型の)を文字列に変換して
STLのstringにぶちこむのにC++的に一番いい方法は
どんなのでしょうか?ついでにその逆も。
0118デフォルトの名無しさんNGNG
>INIファイルのサイズは32Kの壁がありますので。
これほんと?
0119デフォルトの名無しさんNGNG
>>117
良いかどうかは別としてストリーム使うのが標準(というか他に無い)
文字列ストリームね。
0120115NGNG
こんなメッセージです・・・
>>> If this dialog has OLE controls:
>>> AfxEnableControlContainer has not been called yet.
>>> You should call it in your app's InitInstance function.
どこに、何を書けばよいのやら・・・
0121デフォルトの名無しさんNGNG
>INIファイルのサイズは32Kの壁がありますので。
ぷ。馬鹿正直に専用のAPIで記録してるやつ発見。
0122115NGNG
自己解決
StdAfx.hに
#include <afxdisp.h>

InitInstanceに
AfxEnableControlContainer();

を追加で、解決したような気がします
0123デフォルトの名無しさんNGNG
>>121
自分で書いてるのか?
仕事遅そうだな。
0124>116NGNG
コントロールの背景なら
WM_CTLCOLORか、WM_CTLCOLORXXX、ウィンドウメッセージ
を使用してください。

詳細はWIN32SDKを。
0125>117NGNG
(数値->文字)

c++だけで済ませるなら、ストリングストリームでしょうが、
これは将来的に、obsoleteされる危険があります。
となんかの本に書いてありました。
<cstdio>や<cstring>もc++の一部ですので(これはおそらく不変です)
素直にstd::itoa(),std::sprintf()などして利用するのがいいかと。

(文字->数字)
std::atoi()

もしかしたら、便利なアルゴリズムが標準で用意されているかも、
しれませんが、寡聞にして聞きません。

もし余裕があるのであれば、basic_stringテンプレートから
独自拡張したクラスを構築されてはいかがですか?
仕事で使うのなら、テンプレートベンダーから購入するのも
よろしいかと。
0126デフォルトの名無しさんNGNG
いくらstringやstreamを使ってスマートに書いても、
ダイアログアイテムとかとやりとりするときに結局
文字列使わなきゃいけないからメンドくさい。
どうすればいいのね。
0127デフォルトの名無しさんNGNG
メニューの項目(新規作成や開くなど)が表示されている時に
これをソース上で消すようにするにはどうすれば良いのでしょうか?
0128デフォルトの名無しさんNGNG
コネクト済みのソケットがあり、別スレッドから
send、receiveを行いたいのですが、ソケットハンドルを
引数渡しして、attachすれば良いと本で読んだのですが、
具体的なやり方がわかりません。
どなたか分かります?

別スレッド呼び出し関数は以下です。
AfxBeginThread(ThreadProc,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
0129デフォルトの名無しさんNGNG
CFormViewを使ったアプリケーションを開発してるのですが、マウスホイールを使うと
コントロールのフォーカスが勝手に移動するので困ってます。
これを制御する方法はないですか?
Spy++などでメッセージの流れも見てみたのですが、上手い方法が思い付かなくて‥‥‥
0130c++NGNG
コンソールへ出力するときで、 cout を使うとき、
UNICODE が定義されているなら wcout に自動でするような
マクロは定義されていないのでしょうか?
tchar.h にはなかったのですが……。

同じような問題に陥った方・わかる方で、
どう解決されたかをご教示ください。
0131名無しさんNGNG
非常に初心者的な質問で申し訳ないんですが、
サービスパックはバージョンが4のやつを
当てればすべてOKなんでしょうか?
ちなみにnafxcw.libがなくて困ってます。
0132SAGENGNG
>>131
それって Learning Edition には入ってないヤツじゃなかったっけか。
0133名無しさんNGNG
>>132
え?本当ですか?私のはVC++6.0StandardEditionってやつですが
Learning Editionってこれのことですか?
ということはprofessional版以上じゃないとnafxcw.libが必要な
ソースはビルド出来ないってことですか?がーん!!
0134デフォルトの名無しさんNGNG
ちょっと曖昧な質問なのですが、オブジェクト指向っぽい感じで
メッセージ処理をスマートに行う方法があれば教えてください

今はプロシージャを持ってるクラスに、メッセージと直接関係する
クラスの参照をいちいち全て持たして、呼び出しているのですが・・・

できればメッセージと関係するクラスに直接メッセージを送りたい
のですが、ウィンドウをサブクラス化したりするとかえって
分かりづらい気もして・・・何かよい方法があったらお願いします
0135デフォルトの名無しさんNGNG
>>134
質問の意味がかなりわかりづらいから適当な答えになるけど、
MFCの様に継承されたオブジェクトごとに
メッセージフローを持たせればいいのではないんでしょうか?
0136デフォルトの名無しさんNGNG
std::mapでメッセージをディスパッチする
なんか、この方法、前から使ってたんだが最近○ねう○おとかが
使い出したんで別の方法を模索中
0137134NGNG
>>135
わかりづらい質問ですいません。
更に申し訳ないことにMFCはよく知らないんです。うーん、
なんとなく今やってることと同じような気も・・・違うのかなぁ。
今度ちょっとMFC、読んでみます。
>>136
なるほどー、これは良さそうですね。試させて頂きます。
ついでにやねさんのところ行って見てきてみます。
ブックマーク残ってれば(w

お二人とも貴重なレス、ありがとうございました。
0138デフォルトの名無しさんNGNG
>>136
hashでやれば?
おれは昔っからそうやってるよ。
真似っ子は嫌いそうだが。
0139132NGNG
>>133
あーBorland系とごっちゃになってた。そう、Pro版だけ。
「MFCをスタティックリンク」みたいな設定をやめて
ダイナミックリンクするようにすれば nafxcw.lib 不要になるはず。
0140デフォルトの名無しさんNGNG
MFCもハンドルのマップでDispatchしてるよ。
0141デフォルトの名無しさんNGNG
ATLのメッセージマップを参考にしてみよう。
メッセージマップのチェイン化でメンバオブジェクト(EDITクラスウインドウとか)へ
メッセージを分配することができる。
0142でふぉると名無しサンNGNG
winnt.hの中をのぞいていたら、不明な記述があったんで聞くっす。

#define __TEXT(quote) L##quote

なにこれ???
シャープはなにを意味するんですか?
はじめてみた....
0143名無しさんNGNG
>>142
連結演算子です。
0144142NGNG
>>143
おおう、即レス助かります。
連結演算子っすね。
調べちゃったよ。
つーかしらんかった、こんな怪しげな演算子があったとは。
0145デフォルトの名無しさんNGNG
>>138
どうも。
正確にはhashmap使ってたんだが、まー、似たようなもんだから。
今読み返してみてどうにも負け惜しみにしか見えないな。俺の書きこみ

結局記事にしたもん勝ちだな(藁
0146デフォルトの名無しさんNGNG
て言うかさ、勝ち負けなんかねぇよ、そんなもんくれぇで。
0147134NGNG
>>140>>141
ありがとうございます、何を見ればいいみたいな助言は本当に助かります
自分のソースがどんどん分かりやすくなっていって、一人ほくそ笑んでます
0148133NGNG
>>139
なるほど、静的リンクしたいとき必要なライブラリってわけですか。
実はあきらめてVC++アンインストールしてしまったので
もういちどインストールして頑張ってみます。
ありがとうございました。
0149デフォルトの名無しさんNGNG
ダイアログにデータをUpdateData(FALSE)で返すときに、
CStringの項目に改行コード(\n)を入れると、
ダイアログでは改行されずに・に化けちゃうんですけど
どうしたら良いんでしょうか?
0150SAGENGNG
>>149
改行コードは \r\n 。
0151デフォルトの名無しさんNGNG
\nで・になるぞなんでだゴルァって質問なんか週に1回は無いか!?
0152名無しさん@お腹いっぱい。NGNG
ActiveXコントロール/コントロールコンテナから
WordやExcelのドキュメントの書き込み禁止/許可を
させるにはどうしたよいのでしょうか?
0153149NGNG
>>150
ありがとうございました。
>>151
そうなんですか、次回からは過去ログ読みます・・・・
0154デフォルトの名無しさんNGNG
ソケット通信で1460バイトで切れるのは何でですか?
0155デフォルトの名無しさんNGNG
・たいがいLANではMTUがヘッダ除けると1460バイトだから。
・recv一発で全部読み込めると思っている。
このあたりか。
0156デフォルトの名無しさんNGNG
>>155
どうやったら全部読めるんですか?
0157デフォルトの名無しさんNGNG
二歩目を踏み出さずに立ち止まる、何と愚かしいことよ。>156
0158デフォルトの名無しさんNGNG
>>156
TCPはストリーム指向なのでパケットの区切りに特別な意味はないよ。
読みたいところまでrecvしよう。
0159ななしNGNG
下のこれね、
class mycom : public myif {
protected:
ULONG refcnt;
public:
mycom(): refcnt(0) {};
~mycom() {};
HRESULT myfunction(char *buff);
#if 0
// 多重継承を解決しつつインターフェースを返す
HRESULT QueryInterface(REFIID riid, void **obj);
// リファレンスカウントの操作と自己消滅
ULONG AddRef();
ULONG Release();
#else
// IUnknownメソッド
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID*) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
#endif
};
C2555(メソッドの返り値が違う)ってエラーで
#elseの方でないとコンパイルとおらないけど、
VisualStudio6ってそういうもんですか?
Cマガの解説間違ってない?
0160デフォルトの名無しさんNGNG
WIN95でマウスホイールの動作を制御するためにOnRegisteredMouseWheelを
オーバーライドしたいのですが、オーバーライドのやり方がわかりません。
一体、何をどうすればOnRegisterdMouseWheelをオーバーライドできたことに
なるんでしょうか?
0161デフォルトの名無しさんNGNG
>>159
__stdcallが足らない。
Cマガの解説は知らない。
0162デフォルトの名無しさんNGNG
jpegsrc.v6b.tar.gz っていうのを使ってJPEGファイルを扱ってるんですけど。
JPEGのコメント?(制作したソフトの名前とか著作権とか)を読み込むには何て関数使うんですか?
逆に保存時にコメント入れるにはどの関数使えばいいですか?
ソースがデカ過ぎて良く分からん。
誰か教えてお願い。
0163SAGENGNG
wrjpgcom.c とか rdjpgcom.c は違います? >>162
0164156NGNG
>>157_158
ありがとん♪できました
0165デフォルトの名無しさんNGNG
AfxBeginThreadでユーザーインタフェーススレッド起こして、
そん中でsleep(5000)させる(テスト的にね)と
メインダイアログも固まってしまいます。
これじゃ、マルチスレッドの意味がないんですがどうすればよいの?
0166デフォルトの名無しさんNGNG
>163
ありがとう。
これから調べてみる。
0167>165NGNG
自分の書いたプログラムをよーく見直す。
0168デフォルトの名無しさんNGNG
>>165
SetTimerやKillTimer使ってみたら?
0169デフォルトの名無しさんNGNG
>>168
>>165 がやりたいのは、そういうことじゃないと思うんだけどなぁ・・・

作ってるWindowに親子関係が有るとSleep(5000)してる間のメッセージが
止まっちゃうから、当然そうなるな。
I/O待ちで時間が掛かる処理は、非表示ウインドウにして裏にで回したほうが、
多分期待するような、マルチスレッドになるだろうけど。
そもそも、ユーザーインターフェーススレッドが、それだけ黙って止まるんなら、
メインダイアログも一緒にそのまま止まってて良いんじゃないの?
なんか、作りをもう少し考えたら?VC+MFCだからと言って、
スレッドで必ずしもウインドウ持たなきゃいけない訳でもないと思うんだけど。
0170名無しさんNGNG
>>28の者ですが、
直りません。
0171デフォルトの名無しさんNGNG
>>165
とりあえず複数の掲示板で同じ質問するのは良くないかも
0172デフォルトの名無しさんNGNG
>>171
あ、ばれた・・・・でも急ぎだったんで・・・・
0173デフォルトの名無しさんNGNG
sleep(5000)するなんて、ユーザインター
フェイススレッドじゃないよ。
0174デフォルトの名無しさんNGNG
>>173
しょうがないよ。
165は自分のことしか考えないドキュソだから・・・。
0175デフォルトの名無しさんNGNG
#include <stdio.h>

void main()
{
  printf( "好きなことを書きましょう" );
}

これすらコンパイルできません。どうやってもエラー1出てしまいます。
拡張子は.cppなんですが、間違ってますか?
新規作成のときに、どれを選べばいいんでしょうか
0176175NGNG
それとも、保存するディレクトリが間違っているんでしょうか?
0177デフォルトの名無しさんNGNG
>>175
半角スペースと全角スペースってわかる?
まずそれからチェックだな。
0178デフォルトの名無しさんNGNG
 VC6での質問ですけど、新しくアプリを作るのに新規プロジェクトを作成したのですが、いくつかのユーザーインターフェースをはじめとするリソースを他のプロジェクトから流用したいのですが(現プロジェクトから他プロジェクトを参照するという形で)、現プロジェクト側の考え付く限りの#include文を修正しても、どうしても他プロジェクトのリソースを参照してくれません。なにか良い方法はあるのでしょうか。
 また、そこで思ったんですが、共有リソースはリソースとインターフェースクラスでDLLにしてしまうしか手がないのでしょうか。
0179175NGNG
あ、ちなみにVC++6.0です。
0180デフォルトの名無しさんNGNG
>>175
エラーメッセージを書いといたほうが答えてくれる人が増えるよ(多分)。
0181175NGNG
Cpp1.obj - エラー 1、警告 0
という感じです。
エラー、警告ウィンドウは出なかったです。
0182デフォルトの名無しさんNGNG
wara
0183デフォルトの名無しさんNGNG
 165さんの質問に便乗なのですが、今スキャナからデータを取り込むアプリを作っていて、VC6+View/Doc(MDI)アーキテクチャでアプリの骨組みができたところなのですが…
 スキャナに紙を挿入してスキャンを完了した時点で、実際にデバイスを操作しているスレッドからコールバックし、そのコールバック先の関数内でtheApp.OnFileNewを呼んでDocがデータを装填、Viewも作成される…という段取りだったのですが、View作成時にどうしてもエラーが起きてしまいます。(Docは問題なく作成されてました。) そのエラーはWinMDI.cpp内のASSERT_KINDOF(CMDIFrameWnd, pMainWnd);に引っかかるというのものです。これが、デバイス操作のスレッド(AfxBeginThreadで呼んでて、CWinThreadではないやつ)を、AfxBeginThreadを抜いて、ただの関数として呼ぶと、なんのエラーもなく完璧にViewも作成されます。僕の頭では、スレッドのコールバックを契機としてOnFileNewを起動するとASSERT_KINDOF(CMDIFrameWnd, pMainWnd)に引っかかるというのが不思議でしょうがないのですが、なにか良いご指導をいただけないでしょうか。よろしくおねがいします。
0184デフォルトの名無しさんNGNG
複数のDoc-Viewをもつアプリを作っているのですが、新規作成とやった
ときにMFCが標準で出すどのDocumentを作りますか?みたいな確認
ダイアログが出てしまいますが、あれを出さずに、メインフレームの
メニューから選択するようにしたいです。
どうやって対応させればよいでしょうか?
0185デフォルトの名無しさんNGNG
MFCに関してなんですが、CWndでWindowを作るときに、Createメソッドの6番目のパラメータで、子WindowのIDを指定しなければいけないらしいですが、いったいどこからこのIDをとってくればいいのでしょうか。
0186デフォルトの名無しさんNGNG
てめーで定義しろ>185
0187デフォルトの名無しさんNGNG
185ですけど、なにを定義してもいいということですか?
0188デフォルトの名無しさんNGNG
>185
他のコントロールと被らなければOK。
0189デフォルトの名無しさんNGNG
188に補足
「他の」ってのはもちろん同一の親ウィンドウを持つ…ってことだろう。
それと…ちったあてめーで考えるか、やるかしてみろ。>185
0190175NGNG
たびたび、初心者質問ですみません。
エラーメッセージ「ファイル'***.h'の拡張子に関連したコンパイルツールが無いためにコンパイルできません。」
とでます。
これは、インクルードファイルをコンパイルしようとしたとき、何時でも出てきます。
VC++6.0には、付いてますよねぇ・・・?コンパイルツール・・・。
0191デフォルトの名無しさんNGNG
.hをコンパイルしようとなんてするな。>190
0192175NGNG
>>175の原因がわかりました。
mspdb60.dllが無くて、cl.exeが起動できないみたいです。
これってどこかではDLできないんでしょうか。vectorにも無いみたいですし・・。
0193デフォルトの名無しさんNGNG
>>175,192
パス間違ってるだけじゃねーの?
cl.exeローカルドライブ全検索して味噌
0194193NGNG
で、見つかったパスを
ツール-オプション-ディレクトリ-実行可能ファイル
に通せばいいと思ふ。
0195175NGNG
あ、出来ました。193さんどうもありがとうございました。
自分の場合、「D:\Microsoft...」のフォルダの名前を
「VC++」と変更していたので出来なかったみたいです。(これが全ての元凶の様でした)
193さんのレスがヒントになりました。
あ、あと、>>192のMSPDB60.dllは、間違ったディレクトリにあったので、
Windows\system内に移動させたらcl.exeは動くようになりました。
どうもありがとうございました。
0196165NGNG
出来ました。
処理をコンストラクタに書いてました。
Run()を作ってそっちに移行するとうまく動きました。
すいませんでした。皆さんありがとうございました。
ときに、コンストラクタとInitInstance()の
違いって何なんすか?
0197HelpMeNGNG
Windows Sockets通信ですでに開いてるポートを開こうとすると
Bindで失敗してしまいます。
で、そのポートをどのアプリケーションが開いているか調べる方法って
ないでしょうか?
0198初心者NGNG
ダイアログボックス内にあるコントロールボックスの
エディタが現在選択されているIDを返す関数ありませんか?
とにかく現在選択状態になっているIDの取得のしかた教えて
ください。
SDKでお願いします。NOT”MFC"
0199デフォルトの名無しさんNGNG
VC++6.0から、ビルドしたプログラムを実行しようとすると、
リモートの実行可能ファイルのパスとファイル名を聞かれます。
ここには何を入れるのがベストでしょうか。
0200デフォルトの名無しさんNGNG
>>199
lib?
0201デフォルトの名無しさんNGNG
>VC++6.0から、ビルドしたプログラムを実行しようとすると、
>リモートの実行可能ファイルのパスとファイル名を聞かれます。
>ここには何を入れるのがベストでしょうか。

普通はそんなこと聞かれないはずですが、どういうプログラムを
ビルドしたんですか?
0202デフォルトの名無しさんNGNG
>>198
HWND GetFocus(VOID)
とか。
0203デフォルトの名無しさんNGNG
>>196
コンストラクタはnewされると呼び出されるものですが、InitInstance()
は、WinMainが呼び出すものです。
0204デフォルトの名無しさんNGNG
>>97

貧乏大作戦のダメジジイが途中で挫折して捨てぜりふを残して
さっていくさまににてるな。もう戻ってこなくていいよ。
0205デフォルトの名無しさんNGNG
MFC使う前にC++を少しは勉強しろと言いたい。
0206デフォルトの名無しさんNGNG
↑スレ間違った。スマソ
0207デフォルトの名無しさんNGNG
204が間違いね。
0208デフォルトの名無しさんNGNG
wsprintfで、書式制御文字列でdouble型を使う方法はないんでしょうか。
sprintfでは%eや%fで使えるのに。
0209デフォルトの名無しさんNGNG
>>208
sprintf使えばいいじゃん。
0210デフォルトの名無しさんNGNG
MFC使っています。
ビュークラスで左ボタンダウンを拾っていますが、
これって取りこぼしとかあるんでしょうか。

OnDrawの中身が糞コード(自作のね)というのはあると
思うんですが、ノートと据え置きで挙動が微妙に違う。
0211デフォルトの名無しさんNGNG
ド初心者でもわかるVC++6.0の教本紹介してください。
どれ買っていいかわからなくて。
ちなみにPC暦は3年なので、こっちについてはド初心者でもないです。
0212デフォルトの名無しさんNGNG
>210
画面更新速度の違いでしょ?
ノートは遅いからなんじゃない?
0213麻衣NGNG
>>211
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=964560144
を読むと良いと思うなっ♪
0214デフォルトの名無しさんNGNG
麻衣たぁん、、、、ハァハァ(;´д`)
0215デフォルトの名無しさんNGNG
ActiveXのWebBrowserオブジェクトを使って、ローカルにあるHTMLファイルを
表示させるアプリを作っています。表示させるHTMLファイルにもしエラーが
あった場合でも(スクリプトエラーとかプラグインエラー)
アラートのダイアログは絶対に出してはいけないという仕様です。
ちなみにSilentプロパティはTRUEにしたら、スクリプトエラーに関しては
対応できましたが、プラグインエラーに関してはいまだに出てしまいます。
どなたかこの辺の技術に詳しい方、ご教授願います。
0216215NGNG
もしくは出てきたダイアログに対して自動でOKボタンを押すような
処理でもいいです。
0217デフォルトの名無しさんNGNG
ウィザードを使ってクラスを作るとコンストラクタがプロテクテッドになるものがありますよね?
っていうかなっちゃったんですけど...
で、newしたりとか宣言部分でエラーになっちゃうわけです。

なにゆえプロテクテッドになるんでしょう?
0218デフォルトの名無しさんNGNG
>>217
そのクラスを勝手にnewしたりするなって意味では?
そのクラスを別途生成するメソッドがどっかに定義されているか
フレームワーク内部で使うクラスのどっちか。
(前者の場合そのクラスのスタティックメソッドの可能性が大)
0219デフォルトの名無しさんNGNG
VCって言うよりはC++の質問なんですけど

ウインドウプロシージャやダイアログプロシージャを
クラスのメンバ関数に出来ないもんでしょうか?
例えばclass CMyDlgって感じにダイアログ用のクラスを作った場合
そのクラスのメンバ関数にプロシージャがあればすっきりするなぁ
と思うんですが・・・

ようはAPIのRegisterClassとかCreateDialogでC++のメンバ関数の関数ポインタを
渡すようなのりの動作をさせたいんですが、C++のメンバ関数って
動的に使われる(?)からそのままじゃ渡せないですよね?
staticメンバ関数にすればいけそうな感じもするんですが
(まだ完全に試していないというかstaticメンバ関数にした事無かったからよくわからない)
staticメンバ関数って、クラスの静的データメンバにしか
アクセスできないような。
それだと「メンバ関数をプロシージャにしたい」意味がなくなってしまうので・・・

なんかいい方法ありますか?
できれば詳しく「何故可能なのか?」「何故不可能なのか?」まで教えていただきたい
んですが・・・(多くは望みません、ヒントだけでも)

0220麻衣NGNG
C Studioってホームページに答えがあるよ♪
URLは・・・わすれちゃったの、エヘヘ
0221画像系NGNG
の質問です.かなりの素人質問なんですが,表示形式を変えるにはどう
したらよろしいでしょうか?
つまり,理論単位を0.01ミリメートルや1ピクセルに変換する方法が分
からないで困っています.よろよろ.
0222埋NGNG
>>219
そゆときは static なメンバ関数を渡すのが普通だね。で、大抵、
関数ポインタを渡すと同時にパラメータ渡せるようになってると
思うから、パラメータとしてクラスの適当なオブジェクトを渡すように
しといて、staticな関数の中でそのメンバを呼び出すっていう
2段構えにするとOK☆

「何故直接non-staticなメンバ関数を渡すのは不可能か?」だけど、
えーと、なんというか、staticじゃないメンバ関数を呼び出すには
関数のアドレスだけじゃなくてthisポインタもちゃんとなんとかしなくちゃ
ならないわけ。だから関数ポインタ渡すだけじゃ×…。
0223名無しさん@LV2001NGNG
今C++を勉強してるのですが、簡単なプログラムをビルドして実行させると、文字がすべて出たら自動的に閉じちゃいますよね?
これだときちんと表示されてるか確認が取れないんです。
これを避ける方法ってありますか?

あと、VC++6.0のMFCで製作したツールなどを起動させるには、どのDLLが必要ですか?
0224デフォルトの名無しさんNGNG
>>223

DOS wo yameru
0225デフォルトの名無しさんNGNG
>>223

動体視力を鍛える
0226210NGNG
ちょい聞き方アレでしたか。
MFC的に、貯めて貯めてたまったイベントは
いつか吐き出してくれる作りなんでしょうか。
それとも、捨てられるんですか。
0227デフォルトの名無しさんNGNG
getch() wo saigo ni...
0228デフォルトの名無しさんNGNG
どうしてMSDNはあんなにわかりにくいんですか?
初心者は氏ねというMSからのメッセージですか?
0229名無しさん@LV2001NGNG
>>227

このコードだとしたらどこにつければいいですか?

#include <iostream>
using namespace std;

int main()
{
cout << 06 << '\n' << 016 << '\n' << 0 ;

return 0;
}
0230デフォルトの名無しさんNGNG
>>228
お前はもう死んでいる!!
0231デフォルトの名無しさんNGNG
#include <iostream>
using namespace std;

int main()
{
cout << 06 << '\n' << 016 << '\n' << 0 ;

getch();

return 0;
}

キーボードで何か入力するまで終わらないはず。(多分
0232デフォルトの名無しさんNGNG
定義されていない識別子です。

とのエラーが・・・。
0233デフォルトの名無しさんNGNG
こんなことしなくてもctrl+f5でよし
0234デフォルトの名無しさんNGNG
_getch();

MSDNで調べろ。
わしゃ Windows プログラマじゃ。
0235デフォルトの名無しさんNGNG
>>233
普通に「実行」させようとすると、
リモートなんたらのパスとファイル名聞かれるんですよね・・・。
そこに何を入れていいかわからなくて。。。。
0236デフォルトの名無しさんNGNG
>>235
ん??ライブラリ作ってるのか?
プロジェクト作り直してみれ。
0237デフォルトの名無しさんNGNG
>>236
いや、普通にプロジェクトで作ってますけど、
親フォルダの名前変えたからいかんのかな・・・
0238麻衣NGNG
リモート何タラって、リモートデバッグしようとしてるんじゃない?
0239デフォルトの名無しさんNGNG
リモートデバッグまたはリモートターゲットの更新には、リモート実行可能ファイル名が必要です。
リモートの実行可能ファイルのパスとファイル名
[エディットボックス]

ってなかんじです。
0240麻衣NGNG
>>239
http://www.kt.rim.or.jp/~miz/osaru/rdebug/rdebug.htm

このページの通りにすればリモートデバッグできると思うよ♪
わかんなかったら・・・わかんないやり方はやめて普通にすればいいと思う。

それにしても、そこまで出てるんだったらとりあえずgooとか、googleで検索してみればいいと思うんだけどなぁ?
人に効いてばかりだとお馬鹿さんになっちゃうよ?
0241デフォルトの名無しさんNGNG
>>240
  XΛ_ΛX  / ̄ ̄ ̄ ̄ ̄
  ( ^∀^)< 効いて
  (    )  \____
  | Y |
  (__)_)
0242麻衣NGNG
>>242
わーんっ!!!

最近ATOK11を14にしたばっかりだから辞書がお馬鹿さんなんだよぉ・・・。
ATOK8のほうが良くなかったかなぁ?>ALL
0243デフォルトの名無しさんNGNG
漏れはIME推奨しません。
なぜかというと辞書が使い物にならんからです。
はっきりいってヤダです。
もうヤダです。
辞書をがむばって登録したのに、いきなり使えなくなるなんてヤダです。
IMEは別にうんこ以下とまでは言わないけれど、うんこ以上肛門未満ですよ。
でもやっぱりIMEと付き合っていくしかないんですよ。
運命なんですよ。
ATOK入れたいけど、それもヤダです。
だから僕はプログラミングはじめたのですよ。
最高の日本語変換システムを作るためですね。
もう60%はできてますよ。
当然売るんですよ。
これで大もうけするんですよ。
同意してくれた人には抽選で売上の10%あげるんですよ。
0244デフォルトの名無しさんNGNG
とりあえずMSの製品は起動時CPU食いすぎ
0245デフォルトの名無しさんNGNG
ATOKもIMEですけど?>243
アホが多いな・・・
0246マルチメディアNGNG
某猫でもわかってしまうというプログラミングの解説ホームページで
ウィンドウズのSDKの所を読んでいたんですが、
VC++6のリソースエディタを使ってリソーススクリプトを作って、
ウィンドウクラスの登録で
WNDCLASS myProg;
・
・
・
myProg.lpszMenuName="IDR_MENU1";
・
・
・
RegisterClass(&myProg)
と言う風にやってもビルドした後メニューが表示されないんですが
どうしてなんでしょうか…?
resource.hの中の
#define IDR_MENU1 401
を消せば表示されるんですが仕組みがよくわかりません……。
誰か教えて教えて教えて教えて教えて下さい下さい苦堕鎖慰
0247マルチメディアNGNG
ウルトラ初心者の方に書けばよかった……
0248デフォルトの名無しさんNGNG
なんで麻衣がこっちのスレに出張ってきてるんだ。
「お兄ちゃんに教えてあげる」スレに帰れっ!

帰れっ!

帰れよう!
0249デフォルトの名無しさんNGNG
\e
0250デフォルトの名無しさんNGNG
リソースエディタ使わずにプログラム的にメニューの文字列とかを
変えたいのですが、どうすればいいでしょう?
*.rcにあるリソーススクリプトはあまりいじりたくないのですが。
0251デフォルトの名無しさんNGNG
>250

わがままいってんじゃねーよ
InsertMenuItemとかでぢみちに入れてみ
0252デフォルトの名無しさんNGNG
>>246
myProg.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
ってやってみれば、上手にいくかもね

0253デフォルトの名無しさんNGNG
仕事で、VC++でXMLDOMDocument Object使うことになったのですが
insertBeforeメソッドが使えなくて困っています。
コンパイルすると2番目の引数の型が違うと怒られます。
IXMLDOMNodePtrを_variant_tにすれば良い様なのですが
VCは初心者なのでやり方が分かりません。
どなたか教えて下さい。
お願いします。
0254いつでもどこでも名無しさんNGNG
>>223
[Ctrl]+[F5]
0255マルチメディアNGNG
>>252
メニュー表示されました!有り難うございます!!
0256みずきNGNG
実行ファイル本体とは別に、設定用のダイアログをDLLで持ちたいと思っています。

ところが、実行ファイル本体の持つリソースIDと、設定ダイアログのDLLの
リソースIDが衝突してしまうという問題が発生してしまいました。

とりあえずIDを手動で変えることで回避はできると思うのですが、
これから先リソースが増えてきたら、それでは対応できない気がするのです。

なにか、良い方法はありませんでしょうか?
どなたか、よろしくお願いします。
0257デフォルトの名無しさんNGNG
>256
リソースファイルのヘッダファイルの

_APS_NEXT_RESOURCE_VALUE

とかを変更しておけば毎回変えなくていいじゃない?
0258トリッキーの1NGNG
ちょっと質問させてください。
Visual C++で簡単なグラフィックを扱うアプリを作ろうとしたとき、
(例えば……オセロをさくっと作ろうとしたときの事を考えてください)
皆さんどういった環境で作成しますか?

WizardでMFCだと、document/viewのサポートが鬱陶しいし
生MFCを書くのもどうも面倒で気が引けます。
ましてやC+APIってのは時代に反しているし(お気に入りだけど)。

こういう状況で、皆さんのchoiceを聞かせてください。
0259デフォルトの名無しさんNGNG
>ましてやC+APIってのは時代に反しているし(お気に入りだけど)。
ゲームならAPIだろ?
MFCはウィンドウズっぽいソフト向き!
0260デフォルトの名無しさんNGNG
ダイアログベースで、入力はすべてコモンコントロールとか
真面目な話、小さめのアプリなら私もC+++API(w
ウィンドウズっぽい機能使わないならかえって煩わしいですよね、MFC

ましてやトリッキーの1さんレベルなら!(cool!cool!cool!)
0261いさましいチビの女NGNG
>>258
WizardのMFCでも、DOC/VIEWを強制されるってわけじゃないけどね。
特に6からは、手作業なしでチェックボックスひとつでDOC/VIEWを
はずすことができるし。
0262みずきNGNG
>>257
ありがとうございます。
でも、最初から、_APS_NEXT_RESOURCE_VALUE の
値は、メイン側とDLL側で違っていたみたいなんです;
どうしたら良いんでしょうか?

↓DLL側のresource.hの一部

#define IDD_WINDOW1 102
#define IDD_WINDOW2 103

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 2000
0263デフォルトの名無しさんNGNG
すごい簡単な事かもしれませんが、困ってます。教えて下さい。
NTサーバに自動でフォルダを作るプログラムを作ろうと思ってるんです
けど、アクセス権の設定が必要なんです。で、以下のどちらかができ
れば、良いのですけど..。
1.フォルダを作成した後、任意のユーザにフルコントロールのアク
セス権を与える。
2.任意のユーザでフォルダを作成する。
よろしくお願いします。
0264トリッキーの1NGNG
やはり、他の選択肢は無いのかな?
OWLとか出てくるかと期待していたけれど(笑)

>>260
過大評価サンクス(笑)
ダイアログベースだと、例えばグラフの出力なんかがちょっとトリッキーになってしまうので、
あまり好きではないんですよ。
MFCのWizardで、CFrameWndを使わないものがあれば最高なんですけれどね。

>>261
そうなんですが、その場合Wizardが狂ったコードを出力するので
(関連づけられていないViewが作成されて、ASSERTで飛ぶ模様)
その程度ならばDummy Documentを介しても手間はほとんど変わらないし。
Wizardを使うなら、素直にDocument/Viewを使っておくのが無難そうです。
0265デフォルトの名無しさんNGNG
マルチメディアタイマーのコールバック関数とスレッドを
ミューテクスで同期させることは可能ですか?
0266デフォルトの名無しさんNGNG
多分可能だけど>265
でもカーネルオブジェクトって(他のプロセス固有な手段と比べて)遅い様だけどタイマーの精度は大丈夫?
CriticalSectionに変更できるなら、そうした方が良いんじゃないかと。
0267デフォルトの名無しさんNGNG
ありがと266
くりてぃかるでいってみるよ
タイマーの精度・・・いまいちのような気が
0268デフォルトの名無しさんNGNG
フラットツールバーをつくったんですが、
単純にSetWindowLongでTBSTYLE_FLATを追加しただけだと、
上下に余白ができるんで、これを回避したいんです。

例としてはHTMLヘルプとかiriaのツールバーみたいな感じです。
ボタンの縦サイズ=ツールバーの縦サイズ
みたいなスタイルにしたいのですが。
0269デフォルトの名無しさんNGNG

IMEの制御の方法教えて。
自分のプログラムのウィンドウ上の指定した座標に文字入力ウィンドウ出して
入力された文字を漢字変換して変換した後の文字を受け取るみたいなの
「ペイント」で文字入力するときの処理と同じやつ
IME全然知らないドキュソでも分かるようなものきぼ〜ん
できれば解説してるサイトやサンプルコード付きよい。
可及的速やかにお願いモーニング!
0270デフォルトの名無しさんNGNG
>>269
そんな虫のいい話はないぞ。
とりあえず、これはどう?
http://www.ainet.or.jp/~inoue/im/win32.html
0271トリッキーの1NGNG
MFCならCEditViewを派生すれば簡単に出来るでしょう。
APIならEDITをスーパークラス化して使うのが一般的です。
IMEはあまり関係ありません。ふりがなを上に打つならば話は別だけれど。
0272269NGNG
3級!
0273269NGNG
IMEわかった。
意外と簡単だった。
てっきり初期化とかもっと複雑化だと思ってた。
ところで追加質問なんですけど入力中の文字の長さってどうやって取得するんですかね?
「ペイント」や「メモ帳」では入力済みの文字列の途中に新規にIMEで文字を追加する場合
IMEで入力中はすでにある文字列の上に描画され確定後に文字列の間に挿入し再描画してますが
「ワードパット」などではIME入力中にリアルタイムに挿入後の文字列を計算し再描画してます。
入力中の文字列は取得できるので自分で文字列の長さを計算すればいいですけど
複数行に折り返された場合どこで折り返されるか分からないため(一応計算で求められると思うけど)
自分で計算するのはダルそうです。
IMEから直接入力中文字の長さ(ピクセル単位)を取得する方法ないですか?

こういう質問は2chじゃなく本格的なMLで聞いた方がいいですかね?
0274デフォルトの名無しさんNGNG
>>269
2chをなめるなよ〜 といっても俺はわかりません。
力になれなくてごめんな。
0275トリッキーの1NGNG
>>273
IMEから現在入力中の文字を取ることが出来るので、
それを用いてGetTextExtentを使うと出来ないこともないです。
折り返されたらお手上げです。それを一般的に取得する方法は無いはずです。

しかし"一般に"、IME入力中にずるずると後ろにずれるタイプのプログラムは、
IME入力中の文字も自分で描画する必要があります(その方がスマートです)。
なぜかと言えば、IMEによって予期しない文字が足されることが多々あります。
(たとえばATOKは、表示は「入力文字+_」なので、文字数に1を足す必要があります)
だから、まともなプログラムならだるくても必ず自分で描画する必要があります。
自分で描画するんだから、計算もヘチマもありません。

#実際一番だるいのは、変換場所に応じて色分けすることなんですが。
#MSDNなどにも資料が全然ないので、Try&Errorで内部情報をさぐっていくしかありません。
0276デフォルトの名無しさんNGNG
すみません、
C/C++はDOSや組込み系でばりばり書いてるんだけど
Windowsプログラムは一ミリも書いたことが無いし
右も左もぜんぜんわからんという私に適当な
Windowsプログラミングの入門書を教えてください。
0277デフォルトの名無しさんNGNG
VC4Standard買って以来VCを買ってないんですけど
まあいろいろつかってWindowsアプリを作ってます
もうVC4はアンインストールしてしまったんですが
たまにVC4付属のMSDNみたいなやつが読みたい時があります
VCBKS40.MVBというファイルを読むツールは存在しませんか?
0278デフォルトの名無しさんNGNG
メニューに関して質問なんですけど、
IEのお気に入りのメニューみたいに、
ドラッグ&ドロップでメニューの位置を
変更するようにするにはどうしたらいいのでしょうか?
いろいろ調べてみたのですけど、わかりませんでした。
知ってる方います?
0279デフォルトの名無しさんNGNG
>>276
「プログラミングWindows」
通称ペゾルド本。定番だが、これに勝る入門書は今の所無い。ただしWin32APIオンリー。

MFCなら「MFCによるWindowsプログラミング」が良い。ただ順番として
API→MFCと進むのがベターか。
0280デフォルトの名無しさんNGNG
つまり
プログラミングWindows→MFCによるWindowsプログラミング
の順番がよろしい訳ですね?
0281デフォルトの名無しさんNGNG
VC6.0をオンライン登録したいんですが、どうやったらできますか?
もしかしてOfficeみたいにオンライン登録はインストール時のみ可能ってやつですか?

あと、MSDNだけ見たいときにいちいちVC起動するのが面倒なので直接MSDNを開きたいんですが、
ファイルが多すぎてどれが本体なんだか分かりません。
0282トリッキーの1NGNG
>>280
Cをばりばり扱ってきた人であれば、APIから入門した方がわかりやすいでしょう。
そして「MFCによるWindowsプログラミング」は、実に良い本です。
私は以上の道筋を経てWindowsプログラマになりました。

#もっとも私の場合、必ず最初は他人のコードの改造からはいります。
#そのポリシーはN88BASICだろうがAPIだろうがMFCだろうが変わらないですけどね。
#他人のコードを読むのは、本当に勉強になりますよ(参考図書:プログラミングの心理学)
0283デフォルトの名無しさんNGNG
「MFCによるWindowsプログラミング」
Jeff Prosise著、マイクロソフトプレス
"Programming Windows with MFC Second Edition"

これのことですか?
0284デフォルトの名無しさんNGNG
>>283
その通り。First Editionは「MFCによるWindows95プログラミング」だった。

これを読破して、AppWizardやClassWizardに頼らずに組めるようになれば一人前。
Wizardを使って良いのは上級者,熟練者だけ。そこのところを間違えないこと。
0285トリッキーの1NGNG
>>284
激しく同意
0286269NGNG
>トリッキーの1 >>273

>#実際一番だるいのは、変換場所に応じて色分けすることなんですが。

CandidateWindow が出ている状態での変換場所の取得はできましたが
出てない状態で選択位置が変更されたときの位置が取得できません。
開始位置は ImmGetCompositionString でカーソル位置を取得すればいいんですが
終わりの位置(範囲)の取得方法がわかりません。
変換場所の取得または変換中の文字の取得ってどうするんですか?

コンポジションウィンドウを消すのに
ImmSetCompositionWindow で CFS_RECT を指定して文字が表示できないくらい
小さな矩形を設定すれば消えますがもっとスマートな方法はありますか?


お願い教えて!
0287269NGNG

自己レスです。

>CandidateWindow が出ている状態での変換場所の取得はできましたが
>出てない状態で選択位置が変更されたときの位置が取得できません。
>開始位置は ImmGetCompositionString でカーソル位置を取得すればいいんですが
>終わりの位置(範囲)の取得方法がわかりません。
>変換場所の取得または変換中の文字の取得ってどうするんですか?

ImmGetCompositionString で出来ました。
使い方間違ってました。

>コンポジションウィンドウを消すのに
>ImmSetCompositionWindow で CFS_RECT を指定して文字が表示できないくらい
>小さな矩形を設定すれば消えますがもっとスマートな方法はありますか?

ImmSetCompositionWindow の矩形で横幅がマイナスの値で良いような気がしますが違います?
サイズ0だと何故か表示されるがマイナスだと消える。


それとコンポジションウィンドウが表示されない状態だと
CandidateWindow の表示位置を設定できるんですが
コンポジションウィンドウが表示される状態だと
CandidateWindow の位置を設定しても勝手にデフォルトの位置(変換文字の真下)に
移動されてしまいます。(一瞬設定した場所に表示されてすぐに移動される)
これって位置設定のタイミングが間違ってる?
設定する時ってIMEから何かメッセージ送られてくるんですかね?

まぁ表示されていない状態ならうまく動くのであまり関係ないですけど。


自分はMS-IMEなんですけどATOKとかだとIMEから送られてくる
メッセージって多少違ったりするんですかね?
MS-IMEでは動いてATOKじゃ動かないとか・・・


誰か教えて♪
0288デフォルトの名無しさんNGNG
すいません。A.cppの関数からB.cppの関数を呼べるようにするにはどうしたらよいのでしょうか。
0289デフォルトの名無しさんNGNG
B.cppの関数をプロトタイプ宣言したヘッダをA.cppにインクルードする
0290デフォルトの名無しさんNGNG
インクルード ファイルがオープンできません。'hed.h': No such file or directory
こういうメッセージが出てインクルードできないのですが、何故でしょう?
hed.hファイルはプロジェクトのHeader Filesの中にあるのですが・・・
0291デフォルトの名無しさんNGNG
Includeパスが通ってないとか?
0292デフォルトの名無しさんNGNG
>291
どうすればいいのでしょう?
0293デフォルトの名無しさんNGNG
#include <hed.h>

としていませんか?

#include "hed.h"

としてみてください。
0294デフォルトの名無しさんNGNG
駄目でした・・・壊れたんでしょうか。
0295デフォルトの名無しさんNGNG
原因が判明しました。A.cppがプロジェクトのフォルダと違う場所に置いてあったからでした。
ご迷惑おかけしました。289,291,293の皆さん、どうもありがとうございました。
0296デフォルトの名無しさんNGNG
予想通り?
0297デフォルトの名無しさんNGNG
VBAってVisualC++から使えます?
0298デフォルトの名無しさんNGNG
Unicodeの使い方が分かりません。
#define _UNICODEしたんですが、上手くいきません。
どうすればいいんでしょうか。

0299デフォルトの名無しさんNGNG
>VBAってVisualC++から使えます?

意味がわかりません。
0300デフォルトの名無しさんNGNG
>VBAってVisualC++から使えます?
システムモニタってメモ帳から使えます?
と同じような発言だよ。

結論を言うと使えません。
0301デフォルトの名無しさんNGNG
>VBAってVisualC++から使えます?
肛門から小便だせます?
と同じような発言だよ。

結論を言うと使えません。

0302デフォルトの名無しさんNGNG
VC++5.0で、ダイアログAPPを作ってました。
どこをいじったのか今となっては定かでないのですが、
ダイアログリソースの編集をしようと、リソースエディタにフォーカスする度に、
「ソースファイル(foo.h, foo.cp)のクラス"foo"は重複する挿入ブロックが存在します」
と警告ダイアログが出るようになってしまいました。
この警告ダイアログは何なのでしょう。そもそも挿入ブロックとは何なのでしょう?
0303297NGNG
やっぱり言ってることが変でしたか・・・
WinプログラムからVBAのマクロを呼び出せますか?
(これもおかしいこと聞いてますか?)
0304デフォルトの名無しさんNGNG
>>303
ShellExecute使ったらどうよ?
0305デフォルトの名無しさんNGNG
>>303
OLEオートメーション使えば出来るかな。
ちょっとメンドウだけど
0306名無しさんNGNG
初心者です。よろしくおねがいします。
VCでダイアログを表示したり、クラス型の宣言を行ったりしたときなのですが、
pDocTemplate = new CMultiDocTemplate( とか
CAboutDlg aboutDlg;
aboutDlg.DoModal();とか
この場合、pDocTemplateやaboutDlgのメモリを開放するようなコードは
無い、もしくは必要ないのでしょうか。

逆に、必要な場合というのは、どういう時で、どのような命令を実行すれば
いいのでしょうか。
0307デフォルトの名無しさんNGNG
上記の2つに関してはdeleteする必要なし。
0308SAGENGNG
>>306
普通 new で作ったモノは delete で解放する必要がある。
が、pDocTemplate の場合、MFC側のどこかに既に解放用のコードが
入っているはずなので、わざわざ自分で書く必要はない。

後者の場合は普通に int a; とか書いたときと同じで特に何もする
必要はない。変数のスコープが終わったところでデストラクタも自動で呼ばれるし。
0309デフォルトの名無しさんNGNG
>>306 補足

deleteに関してよく問題になるのがCWnd。
MFCのソースから、CFrameWnd::PostNcDestroyやCView::PostNcDestroyを探して読んでみるべし。
0310302NGNG
>>304
>>305
ありがとうございます
OLEオートメーションはお手上げなんでShellExecuteを
使う方法はどうやるんですか?
ヘルプで調べても指定したファイルをオープンした後に
どうするか見当もつきません。
すいません厨房ですがお願いします。
0311306NGNG
>>306です
>>307-309
ありがとうございます。
確かにint a;は、消さなくては・・・という気にはなっていませんでした。
(それも問題かもしれないけれども)ちょっと、リキ入れすぎで変に
なっているようです。

落ち着いてCFrameWnd::PostNcDestroyやCView::PostNcDestroyを読んで
みます。
0312302NGNG
度々すいません、詳細に書きますと
VisualC++のコード上からVBAの
ActiveDocument.Shapes.AddPictureを呼び出したいのですが
それのやり方があれば教えていただけないでしょうか?
よろしくお願い致します。
0313デフォルトの名無しさんNGNG
ずっと独学でやってきたのですが、一つのプロジェクト
の中でどのくらいファイルを分割するものでしょうか?
オリジナルのライブラリ以外全部一つのファイルなので
数千行になったりするものもあるのですが、人に見せた
ら「はぁ?」みたいな顔をされました。
0314デフォルトの名無しさんNGNG
>>313
その関数のジャンルごとにとりあえず分けなさい
ファイルの名前もそれに付随した名前にする
例えばファイル関連ならfile.cとか(これはあくまで例)そんな感じで
0315デフォルトの名無しさんNGNG
>VisualC++のコード上からVBAの
>ActiveDocument.Shapes.AddPictureを呼び出したいのですが

Wordのタイプライブラリを探して、

#import "タイプライブラリ名"

タイプライブラリを探すのは、VBの参照設定画面を使うのがお手軽。
0316デフォルトの名無しさんNGNG
初歩的な質問でスマソ。
2枚の画像を重ねて表示するとき、
たとえば黒の部分だけは透明ということにして
下の画像を残すような処理はどうすればいいですか?
0317デフォルトの名無しさんNGNG
1どっとずつ0か否かを判定して残すか否かを決める(w。
0318デフォルトの名無しさんNGNG
>>310

Auto_Openマクロを書くのが一番簡単

>>316

TransparentBlt()で。
0319デフォルトの名無しさんNGNG
VC++でEditなどのコントロールを追加する方法はありますか?
(例えばメインダイアログで3と設定したら、
サブダイアログにEDITが3つ作成されているっていう事をしたい!)
0320デフォルトの名無しさんNGNG
LVS_OWNERDATAスタイルをもったリストビューを作ったのですが、
アプリケーション側から特定項目のデータの表示を更新する方法がわかりません。
なにか、良い方法内でしょうか?
0321デフォルトの名無しさんNGNG
ウインドウプロシージャをstaticなメンバ関数にすることに成功したのですが、
SetTimerが使えなくなってしまいました。
なんとか使う方法はないでしょうか。
0322デフォルトの名無しさんNGNG
超初心者です。
VCを色々と触ってみているのですが、メニューバーの「編集」の
「コピー」「切り取り」「貼り付け」は自分でコードを書きなさい・・・と
いうようなことが、ヘルプに書かれてあるのですが、さっぱりわかりません。
文字列の切り取り,コピー,貼り付けをクリップボード経由で行うには
どんなコードが必要なのでしょうか。
C++がわかっていれば、おそらく恐ろしく簡単なものなのではないかと、
推測しているのですが、私にはさっぱりわかりません。
どなたか、教えて下さい。
0323322NGNG
うーむ・・・やっぱりわからない。
複数行入力可能なエディットボックスをフォームに置いているので、
CTRL+X,C,Z,Vを可能にしたいのです。
フォームビューを表示してるだけなんだけど、この方法に問題があるのだろうか。
0324322NGNG
自作自演になりつつありますが・・・
COleClientItemってのを使わないとダメみたいですね。
(その使い方が判らない状態だけど)
0325デフォルトの名無しさんNGNG
>>322
俺も詳しくないんだけど、エディットボックスにたいして
CEdit::Cut()、CEdit::Copy(), CEdit::Paste()を使えば
CTRL+X,C,Vはできるかも。
CTRL+Zのアンドゥは自分でガシガシ書くしかないみたい。
0326名無しさんNGNG
>>325の方法だと
エディットボックスが多い場合に問題かな
なんていってる俺も今までにそういうのやったことないけど
0327ひよこちゃんNGNG
VC++を使うに置いての質問です。
VC++6でコツコツと簡単なゲームプログラムを作成していました。
ソースの行数も4000行近くなってきたのですが、行数が増えるにつれ
やたらと処理が重くなるのです。実行したプログラムの処理ではなく、VC++
自体の処理がです。一つのソースファイルにまとめて書くと言うこと自体が
初心者かもしれませんが、分割する以外に対処などはありますでしょうか?
0328 NGNG
分割以外つったら早いマシンに買い換える
素直に分割しなさいよ 分割の仕方を学びなさい
0329矩NGNG
>>322
フォームのクラス内にメインフレームのメニューに関する
ハンドラを置いて、そのハンドラの中で、
フォームのエディットボックスのポインタで
Copy()
とかを呼び出してやれば良いんじゃないですか
0330デフォルトの名無しさんNGNG
駄目駄目
0331初心者NGNG
>>327
インクリメンタルコンパイルがうまく行っていないのでは?
もしくはソースの依存性が高くて一部の変更が全てに影響して、
実質リビルド状態になっているとか。
0332SAGENGNG
>>327
コンパイルが、つーか、エディタが重いんだろ?諦めれ。
一ファイルにだらだら書いていいことは何一つ無いし。
0333デフォルトの名無しさんNGNG
>>331
>一部の変更が全てに影響して

そりゃそうじゃん

>>327
>一つのソースファイルにまとめて書くと言うこと自体

っていってるし
0334質問NGNG
あるフリーのソフトでエディットボックスに[y=x^3+x^2+3x+5]とか記入すると座標にグラフを描いてくれるソフトがあったのですがどのようにして作られているのですか?文字と数字が一緒に記入しても処理できるのですか?私なりにプログラムしてみたのですが簡単なn=3 Y=n*X程度のプログラムならできるのですがy=x^2+3x+5みたいなプログラムはできませんどのようにすればよろしいのですか?また「*」はどのように処理しているのですか?
0335名無しさんNGNG
>>334
それは、貴方が面倒くさがってコーディングしていないだけ
以上。
0336デフォルトの名無しさんNGNG
>334
そのようなプログラムは原理的にVC++では不可能です。
まず、VBの入門書をよく読んでみましょう。
0337デフォルトの名無しさんNGNG
>>336
なんで?GetWindowTextで文字列取ってきて、それをparseすりゃ良いだけの話だと思うんだけど?
0338デフォルトの名無しさんNGNG
スレ違いかもしれなかったのでこちらで聞かせてください
OutLook Expressのメッセージ本文のデータを取得する方法は
どうやるのでしょうか?MAP〜以外のやり方があったらお願いします。
0339デフォルトの名無しさんNGNG
>>333
氏ね
インクリメンタルコンパイル/リンクしらね−のか?
関数単位でやるからソースのでかさは関係ない
0340デフォルトの名無しさんNGNG
それでもファイル分割くらいはできるようになっとけ
0341デフォルトの名無しさんNGNG
>>340
>>333の逝ってることが的外れなだけ
0342デフォルトの名無しさんNGNG
>>336
んなわけないって。それじゃ VC++ でインタプリタ作れない
じゃん。

>>334
コンパイラ理論とか言語理論に関する本を買ってきて読ん
でください。ドラゴンブックが定番。

また、少し古いですが「UNIX プログラミング環境」とい
う書籍に yacc を使った関数電卓の実装方法が取り上げら
れています。

# Win32 なら Excel あたり COM 経由で呼び出して、そっ
# ちに計算させるのもアリか?
0343デフォルトの名無しさんNGNG
>337,342
あきらかに、336はネタだろ。
0344名無しさんNGNG
超初心者です。
エディットボックスのコピー,カット,ペースト,アンドゥが解決しました。
FormViewにOnEditCopyを追加して(こういうのをなんて言うのか判っていませんが)
次の記述で、できました。

void CTestForm::OnEditCopy()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
CEdit* ed=(CEdit*)GetFocus();
ed->Copy();
//Copy(),Cut(),Paste(),Undo()で、それぞれの選択範囲がクリップボードへ
}

>>325,>>329さんの、言われていたことに、非常に近いコードだと思っています。
ありがとうございました。

これって、現在フォーカスのあるエディットボックスのポインタを
CEdit型の変数edに代入し(これも何か言い方があると思うのですが
判りません)、そのエディットボックスのCopy()を呼び出す(これまた、
言い方があると思うのですが)という動作と考えてあっていますかね・・・。
0345名無しさんNGNG
超初心者です。
VC++初心者用スレができたので、私はそっちに行ったほうが
正解ですね。
0346デフォルトの名無しさんNGNG
なんで初心者質問スレが出来たんだ?
大した人数もいないのにこんなに分けて意味あるのか?
0347名無しさんNGNG
超初心者です。
どっちに行けばいいのやら・・・ウロウロ
内容次第ですかね・・・。
(自分の質問が、どっちに含まれるかわからない初心者ですが)
0348名無しさんNGNG
アプリの終了時に Detected memory leaks って、出るのですが
これって、なにかDestroyしわすれているのでしょうか?
0349デフォルトの名無しさんNGNG
>>348
Destroyじゃなくてdelete
0350デフォルトの名無しさんNGNG
>>339
>インクリメンタルコンパイル/リンクしらね−のか?
>関数単位でやるからソースのでかさは関係ない

333です
そーなんだしらんかったっす
一つ利口になりました
0351デフォルトの名無しさんNGNG
VC6.0を使っているのですが、
newがbad_allocをthrowするようにするためにはどうしたら良いのでしょうか?
CRTのソースを見ると、bad_alloc周りのコーディングもしてあるようですが?
0352デフォルトの名無しさんNGNG
>>351

throw bad_alloc;
0353デフォルトの名無しさんNGNG
送信アプリ−受信側アプリの2つを作成して送受信するものを作りたいのですが
送信側で
(1)socketでソケットの生成
(2)inet_addr、gethostbynameで送信先の検索、指定
(3)送信データの作成
(4)sendtoで送信
として、
受信側では、
(1)データを受け取ったら
(2)socketでソケットの生成
(3)recvfromで受信
(4)受信データの表示
としようと思います。
そこで受信側の
(1)のデータを受け取ったら
という部分は、何を使ったらデータを受け取った事を確認できるのですか?
教えてください。

またこの仕組みに改善点があったら教えてください。

0354デフォルトの名無しさんNGNG
そもそも、ソケットを作らないと、データを受信したか
どうかも分からん、と思う、今日この頃。
0355デフォルトの名無しさんNGNG
>>353
select() WindowsならWSAAsyncSelect() winsock2なら、WSAEventSelect()を
調べてみるがよろし。
0356COM超初心者NGNG
アプリからIISの設定(仮想ディレクトリなど)を書き換えたいんですが、サンプルなどご存知でしたら教えて下さい。
#IIS Admin Object の使い方が全然わかりません。

0357デフォルトの名無しさんNGNG
>>356
それ私も知りたい・・・
IIS Admin Objectってあるんだ、ちょっと調べてみる。
0358356NGNG
>>357
参考までにおいらが調べたことを書いておきます。
1.アプリからIISの設定をするには、「IIS Admin Object」という COMオブジェクトにアクセスするらしい。
2.VS6 のMSDNで「Enumerating Keys and Data」にサンプルらしきものがある。
が、単純にコンパイルすると下記のエラーが出る。
error LNK2001: 外部シンボル "_CLSID_MSAdminBase_W" は未解決です
error LNK2001: 外部シンボル "_IID_IMSAdminBase_W" は未解決です
3.(NT4.0 OptionPack の場合)\Winnt\System32\inetsrv\adminsamples\mkwebdir.vbs
にWSH のサンプルがあるが、VC++ で同じ事をやるにはどうすれば良いかわからん。

と言ったところです。
0359デフォルトの名無しさんNGNG
CMapStringToObとCObListを両方継承たいのですが
できますか?
0360デフォルトの名無しさんNGNG
簡単なDOSプロンプトラッパーを作ろうと思っています
例えばボタンを押したらDIRコマンドを発行。という具合です
で、VIEWにDOSプロンプトの結果を反映させたいのですが
DOSプロンプトの文字列を受け取る方法はあるでしょうか?
0361デフォルトの名無しさんNGNG
>>360
popen じゃ駄目?
0362デフォルトの名無しさんNGNG
                Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                ( ・∀・)<  ここ、あんまし賑わってないね。
             _φ___⊂)__ \_______________
           /旦/三/ /|
        | ̄ ̄ ̄ ̄ ̄|  |
        |熊本みかん|/
0363dllNGNG
dllの作り方がいまいちよくわからないです。(SDKで)
dll参照するソフト作るとしますが、
始めに新規作成で空のdllつくります。
次にdllのコードを入力し、ビルドしますが、
ここで、実行するexeを聞かれますが、
まだ、本体作ってないのでキャンセルします。
そうすると、libファイルが作成されませんがどうしてですか?
defファイルは自分で新規作成テキストを.defで保存すればよいのでしょうか?
ちなみにVC6をつかってます。
どうぞよろしくおねがいします。
0364デフォルトの名無しさんNGNG
>>363
defファイルを使うやり方もあるが、説明が面倒くさいので、
↓でも見てやってみてちょーだい。
http://tools.geocities.co.jp/SiliconValley-SanJose/2089/@geoboard/19.html
0365デフォルトの名無しさんNGNG
ユーザーが登録できるコールバック関数が30個程度ある
CのライブラリをC++でラップする必要があるんですが、
単純にMyLibクラスのvirtualメソッドにすればいいんでしょうか?
0366>365NGNG
知りたい事がよくわからんが、既にコールバック関数をユーザーに
公開してる時点でC風のインタフェースにするしかないと思うんだが・・。
0367デフォルトの名無しさんNGNG
>>366
そーでもないよ
0368デフォルトの名無しさんNGNG
他のプロセスのWin32API呼び出しを乗っ取るにはどうしたら良いですか?
たとえばMessageBoxを派手にしたりCreateFileを監視したいのです。
日本語の詳説やサンプルのソースファイルが見られる場所はないですか?
0369デフォルトの名無しさんNGNG
>>368
CreateRemoteThreadでdllを刷り込ませたり、
レジストリに常駐DLLとして登録したり、いろいろ方法あるけど?
0370デフォルトの名無しさんNGNG
すみません、VC用のソケット&TCP/IP関連のリンク集はありませんでしょうか?
0371はいよ(藁NGNG
http://www.infoseek.co.jp/Titles?col=JW&qt=VC%CD%D1%A4%CE%A5%BD%A5%B1%A5%C3%A5%C8%A1%F5TCP%2FIP&lk=noframes&qp=0&nh=10&svx=100600
0372超初心者NGNG
将棋をつくろうと思って
子windowに将棋盤を書こうと思い
Rectangle()を使っているのですが、
書けません。
メインwindowには描画できるのですが・・・
どうやったら描けるのでしょうか?

自分としてはhdc,hwnd,creatwindow()の辺り
の知識がほとんどないので、
その辺に問題があるのかなとおもっていますが・・・
0373デフォルトの名無しさんNGNG
>>371 あががが
0374なまおNGNG
僕のサイトにC言語会話講座と言うのを作ったので、見にきてください!

http://web.kyoto-inet.or.jp/people/namao/index.html
0375368NGNG
CreateRemoteThreadはNT用なのでパスして常駐DLLを使いたいのですが
レジストリへの登録とはどこになにを書き込めば良いのでしょう?
ポインタでも構わないのでご存じの方よろしくご教示くださいです。。
検索しようにも適切なキーワードが分からずサパーリです。
0376デフォルトの名無しさんNGNG
ビットマップリソースの一部を切り取ったCBitmapオブジェクトを作るには
どうしたらいいんですか?
0377デフォルトの名無しさんNGNG
ロードしてDCを付けて新しくBitmap作ってそこにコピー。
0378デフォルトの名無しさんNGNG
「Bitmapにコピー」ってどうやるんでしょうか。
CBitmapクラスにそんな関数はないみたいですが…
0379デフォルトの名無しさんNGNG
>>378
CreateBitmap
ヘルプ見れ
それからWindowsのbitmap操作は色々と面倒だぞ
DIBに直して自分で弄った方が良いかもな
0380379>378NGNG
あ、コピーはbitbltね
メモリDC作ってそこから転送
0381378NGNG
BitBltってDCからDCへビットマップを転送する関数ですよね。
そこからどうやってCBitmapに移動させるんでしょうか…
ビットマップボタン作りたいんですけど。
0382379>381NGNG
ボタンをサブクラス化してWM_DRAWITEMで自分で描画
CBitmapは知らん。つーか忘れた。
codeguru行くか、'BitmapButton'で検索すれば?
0383379>381NGNG
あ、サブクラス化じゃなくてOwnerDrawね。
0384379>381NGNG
http://www.codeguru.com/
0385639NGNG
GetPrivateProfileInt()はWindowsCEでは、有りません。
GetPrivateProfileInt()と同じ働きをするように
他の何かでどうやってやれば構築できるのか
教えてください。
0386デフォルトの名無しさんNGNG
AfxExtractSubStringって関数のことで質問ですが、
ソース中で
CStringのGetBufferSetLength(n)やってるんですが
こういう場合は、
ReleaseBuffer(n)しなくてもいいんですか?
0387デフォルトの名無しさんNGNG
今VisualC++買うのってどうですかね?
.NETまで待った方がいいですか?
0388デフォルトの名無しさんNGNG
GetBufferSetLength は ReleaseBuffer しなくても良い。
もちろん、GetBufferSetLengthに渡した文字列長が正しい
と仮定した場合。将来のバージョンではどうだか知らん。

ReleaseBuffer の役割は、文字列長のセットと、末尾への
'\0' の付加だから。
0389376NGNG
こんな風にしてみたんですが、エラーが出て動きません。

CBitmap bmp,paibmp;
CDC memDC,paiDC;

bmp.LoadBitmap(IDB_PAI);
memDC.SelectObject(&bmp);
paibmp.CreateBitmap(41,66,1,8,NULL);
paiDC.SelectObject(&paibmp);
memDC.BitBlt(100,200,41,66,GetDlgItem(IDC_KONG1)->GetDC(),0,0,SRCCOPY);

いくらいじってみてもうまくいきません。一体どうすればいいんでしょうか。助けてください。
0390>389NGNG
うまくいかないって言われてもなあ・・
結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0391>389NGNG
うまくいかないって言われてもなあ・・
結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0392>389NGNG
うまくいかないって言われてもなあ・・
結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0393デフォルトの名無しさんNGNG
うへえ3重カキコ・・
0394デフォルトの名無しさんNGNG
ヘタレでございます、
ツリーコントロール使い、エクスプローラもどきを習作しているのですが
ドラッグアンドドロップ時のイメージが上手く作成できませぬ。

色々探したのですがドラッグアンドドロップについて
記載した所が探し出せませんでした
何方かご存知でしたら、
また、この件を解説しているサイトがありましたらお教え願います

参考までに、現在マウス周りのコードは
void CMyTreeCtrl::OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
m_pDragFlag=TRUE;//ドラッグモードON
SetCapture();
m_prevCursor = SetCursor(NULL);
m_DragImage.BeginDrag(0, CPoint(0,0));
m_DragImage.DragEnter(this, pNMTreeView->ptDrag);
*pResult = 0;
}

void CMyTreeCtrl::OnLButtonUp(UINT nFlags, CPoint point)
{
if(m_pDragFlag==TRUE){
m_pDragFlag = false;
ReleaseCapture();
m_DragImage.DragLeave(this);
m_DragImage.EndDrag();
SetCursor(m_prevCursor);
m_prevCursor = NULL;
}
CTreeCtrl::OnLButtonUp(nFlags, point);
}

void CMyTreeCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
if(m_pDragFlag==TRUE){
m_DragImage.DragMove(point);
}
CTreeCtrl::OnMouseMove(nFlags, point);
}

という感じにしております。
0395教えてくださいNGNG
動物に関するデータを入力すると、
そのあと入力された数字に応じて
データを表示するプログラムなんですが
動きません。どこがだめか教えてください。

/*動物園*/
#include <stdio.h>
#define number 10
struct zoo{

char syurui;
char namae;
int nenrei;
int taijyu;
}
main()
{
struct zoo doubutu[number];
int n,i,j;
printf("何種類か入力してください\n");
scanf("%d",&n);


for (i=0;i<n;i++){

printf("動物の種類を入力してください\n");
scanf("%s",&doubutu[i].syurui);
printf("そいつの名前も入れてくれ\n");
scanf("%s",&doubutu[i].namae);
printf("年はいくつやねん\n");
scanf("%d",&doubutu[i].nenrei);
printf("そいつ何キロやねん\n");
scanf("%d",&doubutu[i].taijyu);

}

printf("何番目にすんねや\n");
scanf("%d",&j);

j=j-1;

printf("%s\n",&doubutu[j].syurui);
printf("%s\n",&doubutu[j].namae);
printf("%d\n",doubutu[j].nenrei);
printf("%d\n",doubutu[j].taijyu);

}

詳細きぼ〜ん
0396添削人NGNG
まずデータ構造に問題あり。
zoo::namae は1バイトのデータしか格納できない。

char namae[256];//のように適当な配列にするか

char* namae;//のようにポインタにして
         //適宜メモリの確保と解放をやるべし。
0397教えてくださいNGNG
ありがとうございました。
[数字]にすることにより、問題解決しました。
また、わからない事できたらかきこしますので
よろしくお願いします。

ありがとうございました。
0398教えてくだっさいNGNG
タスクマネージャーもどきを実験用に作っているのですが
ほかのアプリのウィンドウ(なぜかフォルダウィンドウはOKです)のアイコンがGetIcon()で取得できません。
ためしにWM_GETICONメッセージに反応してアイコンハンドルを返す
プログラムを作って実験すると取得できます。
またSpy++で適当なアプリのウィンドウを調べてみるとちゃんとWM_GETICONに
反応しているようです。
タスクマネージャーやタスクバーはどうやってアイコンを取得しているのでしょうか?
教えてください。

0399>398NGNG
多分、SHなんとか関数
0400400NGNG
キリ番get
0401教えてくだっさいNGNG
>399
情報ありがとうございます!
0402デフォルトの名無しさんNGNG
CStringなんて移植性は下がるわ動作は遅くなるわたまにメモリ壊すわで最悪だから絶対使うなと言われたんですけど、そんなにひどいんですか?
すげー便利だと思って使いまくってたから愕然としたんですが、俺は今までとんでもない事をやってたんでしょうか。
0403デフォルトの名無しさんNGNG
ソース読め>>402
0404394 NGNG
なんか自己解決出来ました、
当初、BeginDragで
イメージ作ってくれてるのかと思ってたんですが
よくよく考えたらツリーと関係結んでないことに気づき
イメージ作ってから表示したら一発で出てくれました。
阿呆すぎる、、、、
0405デフォルトの名無しさんNGNG
ボリューム名ってなんですか?
0406デフォルトの名無しさんNGNG
入門者です。素朴な質問です。
VCプログラマって基本的にMFCを使用しているのですか?

0407デフォルトの名無しさんNGNG
人それぞれだよ。
0408デフォルトの名無しさんNGNG
>>406
最初はMFCなぞ使ってはならん。コンソールアプリを作って楽しむべし。
AppWizardなんてもっての他だ。
コンソールで一通り遊んだら、MFCを使って遊ぶべし。それが一通り終わった頃には
AppWizardが生成したソースも難無く読めるであろう。
頑張って遊ぶがよし。最初から気合入れると疲れるぞ。遊ぶ気持ちを忘れずにな。
0409デフォルトの名無しさんNGNG
いきなりですが質問です。

class a
{
public:
void (*pmemfunc)();
};

class b
{
public:
b();
int retdata();

a adef;
};

b::b()
{
adef.pmemfunc = retdata; // エラー
}

このような関数を渡す処理を行おうとすると、型キャストのエラーが出ます。これを解消する方法はないでしょうか?
0410RIP_MAPIRONGNG
>>409
関数へのポインタへの型チェックは、明確にしなければならない。
この場合2通り考えられる。
1) void (*pmemfunc)(); -->int (b::*pmemfunc)();

2) void (*pmemfunc)(); -->void (b::*pmemfunc)();
int retdata(); --> void retdata();

戻り値が void と int を混在させる必要がある場合素直に別の関数と
割り切ってそれぞれ作るしかないでしょう。
0411デフォルトの名無しさんNGNG
なぜWM_PAINTメッセージではBeginPaint関数を使わなければ
ならないのでしょうか?GetDC関数では駄目なのでしょうか?
もしかして有効化と関係あるのでしょうか。
0412デフォルトの名無しさんNGNG
GetDCでもいいよ>441
0413409NGNG
>>410
ありがとうございます。で、すいません。質問のとき、intとvoidを混在させてしまいました。使用しているのはvoidです。ところで、もう一つよろしいでしょうか。

class a
{
public:
void (b::*pmemfunc)();
};

の状態で、pmemfuncが実際の関数を指しているのか調べるために、コンストラクタでNULLを入れて、ある関数中で

スコープ:a
if (pmemfunc != NULL) pmemfunc();

とするとコンパイラエラーが出ました。これはどういうことなんでしょうか。

0414デフォルトの名無しさんNGNG
GetVolumeInformation() //ドライブのボリューム名の取得
を使わずに同じ働きをする関数を探しています。
そのようなものってありますか?
0415RIP_MAPIRONGNG
>スコープ:a
ということは class a の メンバ内ということですな。

さて例えば関数へのポインタ
void (*Hoge)();
と宣言された Hoge をコールするときは
(*Hoge)();

ということは
すくなくとも pmemfuncをコールするときは
(*pmemfunc)();
とせねばならないことはよろしいか?

しかしこれでもエラーが出る。
なぜなら b::*pmemfunc と宣言されているので class b の実体から
参照されなければならないことになる。
よって この場合 class a にメンバ変数 class b へのポインタを用意
してやってそれからコールする。

例えば以下のように
class a
{
public:
  a(){
    pmemfunc = NULL;
    m_Pointer_b = NULL;
  }

  Call_pmemfunc(){
  if(m_Pointer_b != NULL && pmemfunc != NULL ){
  (m_Pointer_b->*pmemfunc)();
  }
  }

  void (b::*pmemfunc)();
  b* m_Pointer_b;
};

class b
{
public:
  b(){
  adef.pmemfunc = retdata;
  adef.m_Pointer_b = this;
  }

  void retdata();

  a adef;
};
0416デフォルトの名無しさんNGNG
>>411
ウィンドウに無効な領域(書き直すべき領域)があって、
ほかにこれといったメッセージがないときに、
GetMessage すると、WM_PAINT が帰ってきます。

BeginPaint, EndPaint をしないと、永遠に WM_PAINT が
着続けて、そのたびに再描画していると無駄に CPU パワーを
食ってしまいます。
0417413NGNG
>>415
ありがとうございます。
ついでにもう一つ。上記例で、クラスaから派生されたクラスの関数を渡したい場合には、そのクラス名がわからないと無理なんでしょうか。これからの拡張性を考えると、親クラスだけがわかっていて子クラスがわからない場合でも子クラスの関数アドレスが渡せると便利だと思うのですが…。というか、それができないと困る場合が…。
0418教えてくださいNGNG
解き方がまったくわかりません。
だれかサンプル作ってください。

1、入力ファイル
 1、データを格納する配列数は100.
 2、データには「連番、社員NO、部署番号」が存在する。
2、読み込んだデータを社員NOと部署でソート(昇順)する。
 1、第一ソートは部署番号
 2、第二ソートは社員NO
 3、ソート方法は各自で調査、決定する。
3、ソートした結果を画面に出力。

ファイルサンプル ソート結果イメージ
1,2154,556     4,3365,55
2,857,102   3,559102
3,559,102 2,857,102
4,3365,55 1,2154,556
5,3398,556 5,3398,556

このような物なのですが、関数を使って解きたいのですが。
誰かよろしくお願いします。
回答、きぼ〜ん
0419教えてくださいNGNG
418です。
最後のところがうまく表示できなかったんですが
よろしくお願いします。
0420デフォルトの名無しさんNGNG
>>413
そういう用途ならば、メンバ関数ポインタなど使わず、
インターフェースクラスをつくって、そのポインタを
貰いましょう
0421ななしNGNG
dllを使って、システム全体の
キー入力を監視するプログラムを作ってます。
そこで、hook使ったのですが、
hookだと監視はできます。
文字の入力ができません。
これを回避する方法はありますか?
0422デフォルトの名無しさんNGNG
412,416さん有難うございます。GetDC関数でもよいとの事ですが
WM_PAINTメッセージ処理の中にGetDCをBeginPaintの代わりに
書くと、プログラムがおかしな状態になります。そこでGetDCの前に
ValidateRect関数でクライアント領域を有効化すると、上手く描画
できます。これはナゼ
なんでしょうか?
0423416NGNG
>>422
ネタ?
416を読み直してもわからないようなら、もう一度聞いて。
0424RIP_MAPIRONGNG
>>417

>クラスaから派生されたクラスの関数を渡したい場合
質問の流れからすると
"クラスbから派生されたクラスの関数を渡したい場合"
のような気がするが・・・。

どのような実装を目指しているのか、いまいちつかみ所が
分からなくなってきた。ただ言えることは Cライクな C++
にはまりそうな気がする。今一度 設計を検証することを
オススメする。
 もし他人のクラス群の拡張なら、思い切ってクラス設計を
一からやり直した方が速いかもしれない。

0425412>422NGNG
そりゃ、ValidateRectで全部有効化すりゃメッセージは来なくなるよ。(苦笑
で412だけど、あれ、適当。すまん。つーか言葉が足りなかったみたいね。
WM_PAINT処理するならBeginPaint/EndPaintは呼ばなきゃだめだよ。
その中でGetDCは別に呼んでも構わないよ、って412を解釈してね。
あとはもう説明面倒だから416さんにでも聞いてね。
0426デフォルトの名無しさんNGNG
>>424 RIP_MAPIRO様
ぢつは…ワタクシもともとDelphi使いでして。MFCをDelphiライクにコンポーネントクラスで使えるといいなぁと思っていたのです。そのため、
CEdit (継承 -> ) TEdit
CButton (継承 -> ) TButton
などとして、プロパティを使ってアクセス性の高いクラスを作っていたのです。その目的のうちの一つとしてイベントハンドラを渡せると良いなと思いまして。
そこで、TNotifyEventクラスを作りまして。これは、
void (*OnButtonClick)();
などのメンバ関数を持っています。
このTNotifyEventクラスとCEditなどのMFCクラスとを多重継承させてTEditクラス等を作ってみたのです。MFCクラスの親CWndクラスのDefWindowProcメンバを使用してメッセージ分岐処理を行っています。ところが、CFrameWndクラスを継承して作ったメインウィンドウクラスにOnButton1Click()メンバを作り、
Button1.OnButtonClick = OnButton1Click;
などとやりたかったのですがスコープの問題でうまくいかなかったのです。
実際に、これらVCLもどきはライブラリとしてまとめると再利用性があるかと思ったのですが、前回の解決方法ではうまくいきません。

そういう目的があったのですが…説明不足で申し訳ありませんでした。
0427デフォルトの名無しさんNGNG
>422

例えば、ウィンドウ上にダイアログがあって、そのダイアログが消えると、描画しなければいけない空白がウィンドウ上にできる。
こういうのを無効領域っていうの。
この無効領域があると、WM_PAINTが自動的に発行される。
WM_PAINTがきたときにこの無効領域を有効化しないと、無効領域が残ったままなので、416の言うようにWM_PAINTがずっと発行され続けて表示がおかしくなってしまう。
無効領域を有効化する方法は3種類。
1、BeginPaint()を呼ぶ
2、ValidateRect()、ValidateRgn()を呼ぶ
3、WM_PAINTを処理しないで、そのままDefWindowProc()を呼ぶ。
の3つ。WM_PAINTがきたときは、この3つのうちどれかを実行しないと表示がおかしくなる。
422のケースで、ValidateRect()を呼んでうまくいったのは、2を実行していたから。

普通は、「無効領域がある」=「描画しなければいけないところがある」ってことなので、BeginPaint()で描画と有効化を一度にやる。
それと、BeginPaint()は「無効領域以外の部分は描画できない」という特徴があって無駄な描画が減るので、ちらつきが少なくなるよ。

0428デフォルトの名無しさんNGNG
>>426
delphi流のメソッドポインタですか。
一応C++でも不可能じゃないけど、あんまり綺麗には書けない
(のでdelphiに戻ったほうがよい(笑))と思ったもんでした。

以前なんかの折に書いた落書きが以下です。
有能な人が書いたら遥かに綺麗になるのかも知れないけど。
つーか書いてください優秀なかた(T_T)

そういやメソッドポインタって、JavaとJ++の戦争のネタの一つでしたよね(笑)。
面白い概念だとは思いますよ。うん。

CServerがDelphiでいうコンポ、CClientがForm(笑)のつもりです。

template <class MethodServer> //MethodServerてのは「メソッドを持ってる奴」ってなニュアンス
class CMethodPointer { //この型をメソッドポインタと呼ぶのってもしかしてdelphi流でしょか?
private:
typedef void (MethodServer::*Method)();
MethodServer *receiver;
Method method;
public:
void set(MethodServer *rcv, Method mth){receiver=rcv; method=mth;}
void exec(){(receiver->*method)();}
};

#include <stdio.h>

class CServer {
public:
void f1(){puts("f1");}
void f2(){puts("f2");}
};

class CClient {
public:
CMethodPointer<CServer> mp1;
};

int main()
{
CClient cl;
CServer sv;

cl.mp1.set(&sv, &(CServer::f1));
//これは出来れば勘弁願いたい書き方だ。目の前にある変数(sv)の型をなんで再び
//人間様が書かんとならんのだ?
cl.mp1.exec();

cl.mp1.set(&sv, &(sv.f2));
//これがお洒落だなあ。これ通るのってC++標準準拠なんでしょか?
//ホントはdelphiみたいに第一引数不要ならば嬉しいが、それは仕方ないつーことで。
cl.mp1.exec();
}
0429RIP_MAPIRONGNG
>>426
なるほど。Delphiを使ったことはないけど、”MFCをコンポーネントクラスで使える
といいなぁ” には共感できる。私の場合そういう包括的なアプローチはあきらめて
オートメーション機能を使っている。細かいことをやりたいときはATL&COMを使う。

>メインウィンドウクラスにOnButton1Click()メンバを作り、
>Button1.OnButtonClick = OnButton1Click;
>などとやりたかったのですがスコープの問題でうまくいかなかったのです。
PreTranslateMessage のオーバーライドで解決する問題では?
0430デフォルトの名無しさんNGNG
>>428
親切なレスありがとうございます。
ただ、できれば今後アプリを作る中で楽したいので、結局現在以下のような手段で手を抜いております。

(1) TNotifyEvent中のメソッドポインタは、TButtonなどの親クラス(CButton)のさらに親クラス(CWnd)型で宣言しておく。
void (CWnd::*OnMouseMove)();
void (CWnd::*OnLButtonDown)();
等のように。

(2) TForm(ウインドウクラス。派生元はCFrameWnd)の実装を持つ、イベントドリブン用のメソッドは、普通にクラス内で宣言する。
class TMainForm : public TForm
{
...
TButton Button1;
void OnButton1MouseMove();
};

(3) このままだと、実際にイベントハンドラに実装関数を渡すときのキャストが面倒
スコープ TMainFormの関数中
Button1.OnMouseMove = (void (CWnd::*)())OnButton1MouseMove;
なので、defineマクロを使って誤魔化す…(<-ここがダメダメ)
#define NEFUNC (void (CWnd::*)())
この場合はスコープTMainFormの関数中
Button1.OnMouseMove = NEFUNC OnButton1MouseMove;
ですみます。

…やり方はちょっとセコイですけど、一応今後は楽にメッセージ処理が行えるなぁと思っています。ただし、残念ながら出来るだけ多くのメッセージをTNotifyEventクラスで処理させようとすると、Switch処理で馬鹿みたいに処理が長くなって、処理速度の低下につながるなぁとも思っているんですけど。ま、でも、そこまで大した損失じゃありませんよねぇ?(CのSwitch処理の機構はイマイチわからないのですけど。アセンブラクラスではGoto命令みたいな処理をやっているだけでしょ?選択肢が増えてもあまり関係ないような気もしますけど)

>>429 RIP_MAPIRO様
色々と何度もありがとうございます。
ただ、コンポーネント化という観点からは、PreTranslateMessageのオーバーライドでは全く問題解決にならないような気がするのですが…。ようするに、違う処理を行うボタンを貼り付けるたびに、そのそれぞれを新たなクラスとして継承・オーバーライドをする必要があるわけですよね。それとも、私の考え方違いなのでしょうか。よろしくご教授ください!
0431デフォルトの名無しさんNGNG
WindowsCEでリソースのVersionのProductNameを取得したい。
でも
GetFileVersionInfoSize()して
GetFileVersionInfo()して
VerQueryValue()して取得する。
という操作はCEでは、
GetFileVersionInfoSize()、
GetFileVersionInfo()、
VerQueryValue()の3つともサポートしていない
ので使えません。
どのようにして取得すればいいですか?
教えてください。
0432デフォルトの名無しさんNGNG
>>430

まぁ、メソッドポインタ型の変数が
字義どおりのメソッドへのポインタ自体だけじゃなく
対応するインスタンス(のthis)をも含んでくれている、
というのがdelphi系の美しさの肝なので、
それと同じに書けないという意味では
標準C++であれを真似るのは微妙に辛いですね。

というか、(C++で出来ないゆえに)メソッドポインタが知られていない、
それゆえdelphiのメリットを理解してもらえない、という悪循環が、
信者(笑)としては残念に思うところ。

イベントプロシジャの仕掛けは、メジャー(?)な言語の多くでは
直接サポートされていないので、色々なGUIツールキットは
それぞれいろいろなやり方で苦心していますね。
unix畑で流行している「Gtk」とか「Qt」とかの
イベントプロシジャの実現方法は、横目で見ておく
(=本屋で立ち読みとか(ぉ))と参考になるかも知れません。
ちなみにGtkは対象言語が生Cなので、解決策も一番安直です(笑)。
QtはSLOTとかいう概念を使う(マクロで実現してる)んだっけか。
他にもツールキットって随分たくさん有るんで、眺めると吉かも。
#そして結局、従来型言語では不便だ、という結論に至る…かも(笑)

Javaは、アダプタObject(のクラス)をいちいち作って介在させるんでしたっけか?
あれはComponent本体のClassをいちいち派生させなくて済む
という意味では旨いんですが、アダプタInstanceの所有権つまり
いつ誰がアダプタをdeleteするか?で、ガベコレのない言語の悩みに突き当たるっぽい(^^;

ところで、少し前に出た奴ですが、

>このTNotifyEventクラスとCEditなどのMFCクラスとを多重継承させてTEditクラス等

多重継承はちょっと違うんでないですか?
コンポーネントはEventオブジェクトを「所有」すべきだと思うのですが。
たとえば同じ型のEventを同時に複数持ちたくなったら、
継承じゃまずいのは確かですよね?
Edit1.OnClick
Edit1.OnDblClick
みたいな感じ。
所有させておいて、明示的に(=区別して)名前で呼び出すのが良いと思います。

>出来るだけ多くのメッセージをTNotifyEvent
>クラスで処理させようとすると、Switch処理で馬鹿みたいに処理が長くなって

あれれ?なんでそんなこと(=caseの嵐)になるんでしょう?
そんなことにならないのがイベントプロシジャの味噌だと
思っていたのですが…違いましたっけ???

0433RIP_MAPIRONGNG
>>430
思いつきだけど。
PreTranslateMessageで親ウインドウ(以下"親")から子ウインドウ(以下"子")へ
メッセージを再配分する訳で、親のデータメンバに子のHWNDやら
HINSTANCE等の情報を動的にリストに確保してやれば良いのでは。

0434デフォルトの名無しさんNGNG
>メッセージを再配分する訳で、親のデータメンバに子のHWNDやら
>HINSTANCE等の情報を動的にリストに確保してやれば良いのでは。

それってもしかして、
なんぼインスタンスの情報を持たせても、
それぞれの「挙動」の違いを表現できない、
ってことだったりしませんか?

0435元Delphi使いNGNG
>>432
いえいえ。TNotifyEventクラスは、それぞれのメッセージに対応するイベントプロシジャへのポインタを持っている状態であるんです。まだ、メッセージを調べ始めたばかりなので数は足りないのですが、今現在の状態ではTNotifyEventクラスは以下のような定義になっています。
class TNotifyEvent
{
public :
TNotifyEvent();

void (*WMMouseMove)(int state, CPoint mousepos);
void (*WMDestroy)();
void (*WMLButtonDown)(int state, CPoint mousepos);
void (*WMLButtonUp)(int state, CPoint mousepos);
void (CWnd::*WMLButtonClick)();
void (*WMRButtonDown)(int state, CPoint mousepos);
void (*WMRButtonUp)(int state, CPoint mousepos);
void (*WMRButtonClick)();
void (*WMCreate)();
void (*WMSetFocus)();
void (*WMKillFocus)();
void (*WMVScroll)();
void (*WMHScroll)();
void (*WMKeyDown)(WPARAM wParam);
void (*WMKeyUp)(WPARAM wParam);
void (*WMChar)(char getk);
void (*WMLButtonDblClk)(CPoint mousepos);
void (*WMRButtonDblClk)(CPoint mousepos);
void (CWnd::*WMButtonClick)();

LRESULT WM_SwitchExecute(UINT message, WPARAM wParam, LPARAM lParam);

CWnd* NotifyEventParent;

protected :
CPoint pm_ClickCursor,pm_Mouse;
BOOL pm_BTNState;
};
で、たとえばボタンコントロールの場合は、
CButton、TNotifyEventを多重継承の形で継承してTButtonを作っています。
class TButton : public CButton, public TNotifyEvent {...};
ここで、TButtonはDefWindowProcメソッドをオーバーライドしています。
このDefWindowProc中で、
TButton::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
WM_SwitchExecute(message, wParam, lParam);
CButton::DefWindowProc(message, wParam, lParam);
}
と、TNotifyEventのWM_SwitchExecuteを呼び出し、そのWM_SwitchExecuteは
TNotifyEvent::WM_SwitchExecute(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_MOUSEMOVE :
pm_ClickCursor = pm_Mouse;
pm_Mouse.x = lParam & 0xffff; pm_Mouse.y = lParam >> 16;
if (WMMouseMove != NULL) WMMouseMove(wParam, pm_Mouse);
break;
case WM_DESTROY :
if (WMDestroy != NULL) WMDestroy();
break;
...
};
}
とやっております。現在はこれと430の方法で動かせるのですが。前回言ったswitch文が長くてどーたらというのは、上記WM_SwitchExecuteの部分です。また言葉足らずでもうしわけない・・・。
0436元Delphi使いNGNG
すんません、補足です。
まだ変更作業をはじめたばかりなので、ほとんどの関数ポインタが(*...)()という表記になっていますが、実際は全部(CWnd::*...)()なる形になります。もうしわけない。
0437defaultNGNG
フックで、HookProcから
ウィンドウの方に返すには
どうしたらよいですか?
0438デフォルトの名無しさんNGNG
おういぇい!
0439デフォルトの名無しさんNGNG
>>438
イエーイ☆
0440デフォルトの名無しさんNGNG
フック!
0441デフォルトの名無しさんNGNG
当方、VC6でプログラムを作成しています。
ところがReleaseビルドしたものをVC上で動かすと異常終了するようになりました。
DEBUGビルドした物はちゃんと動くし、Releaseビルドでも直接起動すればちゃんと動くのですが、
ReleaseビルドしたのをVC上で動かすと不正なアドレスのメソッドを呼び出しているみたいで
落ちてしまいます。
DirectXを使っているので実行中にアドレスを確認することが出来ないんですが、
この原因はVCのバグ以外にどんなのが考えられるのでしょうか?
0442RIP_MAPIRONGNG
ポインタ変数やらオブジェクトを初期化していないでいきなり参照した。
0443デフォルトの名無しさんNGNG
船長
0444デフォルトの名無しさんNGNG
MFCとSDKだとSDKから勉強したほうが良さそうみたいですが
SDKの本って出版されてるんですか?
ちょっとした本屋には無くて
やっぱり秋葉原のデッカイ本屋とかじゃなくちゃ駄目ですかねぇ?
0445初心者NGNG
SYSTEM_INFOを使ってプロセッサータイプを取得しよう
としたのですが、K6-2がpentiumと認識されてしまいます。
もっと正確にプロセッサーを調べるにはどのようにしたらよろしいのでしょうか?
0446デフォルトの名無しさんNGNG
>>441
直接起動だとたまたま動いてるだけでどっかにバグが残ってんだろ。

>>444
そこらの本屋にいくらでも置いてあるっす。
0447444NGNG
>>446
ぎゃー
VC系の本は全部MFCです
0448デフォルトの名無しさんNGNG
>>445
http://www.google.com/search?num=30&hl=ja&safe=off&q=CPU+%94%BB%95%CA+VC
こんなん出たぞ。

>>447
ハーバート・シルトやペトゾルドの本探して見れ。
0449ぽっぽNGNG
モニターの解像度を640×480に強制的に変えるにはどうすればいいんですか?
0450ぽっぽNGNG
放置しないでよ・・・age
0451>450NGNG
「モニターの解像度を640×480に強制的に変える」で検索してね。
0452ぽっぽNGNG
そんなもん検索しても出てくるかボケ逝け!
0453ぽっぽNGNG
黄金厨逝って良し!
0454デフォルトの名無しさんNGNG
「VisualC++ モニター 解像度 640×480 強制的に変える」で検索してね。
0455ぽっぽNGNG
出ねーよ。クソッ騙された!答えれる奴はいねーのか?
厨房板か!ここは?
0456ぽっぽNGNG
下がってるぞ
0457デフォルトの名無しさんNGNG
騙されてる騙されてる。(w
いや、でも「解像度の変更」とかで引っかかる気がするけどなあ。
0458デフォルトの名無しさんNGNG
454を少し変えたら出たよ。
0459ぽっぽNGNG
出たんなら教えろ。けちんぼがーーー!
もう今日は寝る。また明日あげまくったる
0460デフォルトの名無しさんNGNG
面白い人だ。
0461デフォルトの名無しさんNGNG
ALT+CTRL+DEL押してみれ。
0462デフォルトの名無しさんNGNG
「ぽっぽ」って某野党党首の俗称?
0463445NGNG
>>448
サンキュです。
0464つねに名無しNGNG
最近VC++でSTLって奴を勉強しはじめた。

しかし、コンパイル時によくわからんワーニングがでまくりやがる。

h:\program files\microsoft visual studio\vc98\include\xtree(118) : warning C4786: 半角文字が大杉って怒られたから略す : 識別子が '255' 文字に切り捨てられました (debug 情報内)。
とか、
warning C4786: こっちも略す: デバッグ情報で識別子が 255 文字に切り捨てられました。
とかなんだけど、これってなに?俺の使用方法が間違ってるん?
設定が悪い?VC++がわるい?MSがわるい?
0465つねに名無しNGNG
ちなみにソースはこれ。

#include <map>
#include <string>

using namespace std;

main() {
   map<string, long> Event;
   printf("意味無し");
}

VC++は6.0でSP5まで入れてある。
0466デフォルトの名無しさんNGNG
>>465
おまえが悪い
なんか前にもこんなのがあった。二番煎じ
>わからない人
全角スペースのわかるエディターに貼ってみて。
0467デフォルトの名無しさんNGNG
>>465
ワーニング娘。
プ

きっと「STAR WARS」も「すたーわーず」と読むんだろな。
0468デフォルトの名無しさんNGNG
>>464
VC++って、ものすごい投げやりなWarning吐くんだな...
シラナカッタヨ.....
0469デフォルトの名無しさんNGNG
466はアホか?
全角インデントは、書いた奴が読みやすくしようとしただけだろ。

とりあえず、このスレで聞く前にgoogleに聞け。
http://www.google.com/search?q=STL+%8E%AF%95%CA%8Eq+%8Cx%8D%90&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja
0470デフォルトの名無しさんNGNG
つーか、がいしゅつだからどのスレに書いてあったか探そうかと思ったけど、
面倒だったんでな。スマンね。
0471つねに名無しNGNG
お、出ないようになった
さんくす
0472デフォルトの名無しさんNGNG
テキストボックスにファイルの内容を16進で表示するのは?
まったくわからん。だれか教えて。(ウイザードでつくってからわからない)
0473デフォルトの名無しさんNGNG
なにがわかんないのかぜんぜんわかんねーや。
1.ファイルを読む方法がワカンナイ
2.16進数の並びにする方法がワカンナイ
4.テキストボックスに表示する方法がワカンナイ

あ、俺はどれもワカンナイから答えられねーや
0474デフォルトの名無しさんNGNG
3が抜けた
まーいーや
0475デフォルトの名無しさんNGNG
3が気になる。自社ビルに4階がないくらい気になる。
海外のホテルで444号室があった以上に気になる。
0476スーパービギナーNGNG
C言語なんですけど。

本で「べき関数を行う関数」をやってるんですが、このプログラムの
意味がわかりません。

int beki(int a,int b)
{
int i,ans;

ans=1;
for(i=1; i<=b; i++){
ans=ans*a;
}
return ans;
}

何で
  ans=ans*a
でべき関数ができるのかわかりません。それにiの範囲を指定してるのに
iを使っていなくていきなりansが出てくる。これも謎です。
どなたか解説してくれませんか?
0477デフォルトの名無しさんNGNG
>>476
たとえば、2の3乗っていうと、2*2*2 と2を3回かけるのね。
a=2, b=3 で、iが1,2,3と増えると、ループを3回回って、
2が3回掛け合わされるわけ。

って、これはVC++の質問じゃねーじゃん。
俺っておひとよし?
0478デフォルトの名無しさんNGNG
どこのスレだっけ?
ついこの前、x^nは1にxをn回かけたものって説明があったよね。
理論的には違うんだろうけど、x^0=1の説明の仕方としてはうまいと思った。
0479スーパービギナーNGNG
iの意味ってなんですか?
0480デフォルトの名無しさんNGNG
sqrt(-1)
0481デフォルトの名無しさんNGNG
>480
虚数やん(w
0482SAGENGNG
>>479
ループした回数のカウント用。
0483デフォルトの名無しさんNGNG
sqrt(-1)=NaN
0484デフォルトの名無しさんNGNG
>>479
まずforループの使い方を勉強した方がいいと思われ。
0485デフォルトの名無しさん NGNG
>>477
か〜な〜り〜おひとよし

forループの使い方もそうだけど、べき関数が何を行うのか分かってないような気がするぞ
0486デフォルトの名無しさんNGNG
よくインスタンスという言葉がでてきますけど
なにを意味しているのが良くわかりません。
どなたか教えてもらえないでしょか。
0487デフォルトの名無しさんNGNG
VC++で作ったソースを全部まるまるMOにコピーして、別のパソコンに移して
そこで編集しようと思ったのですが、「メンバ自動表示」の機能が
まったく動作しなくなってしまいました。
修復方法があれば教えていただきたいです。
0488デフォルトの名無しさんNGNG
>>479

>>482にもあるけど、forループでは、昔からカウント用に
変数 i を使うのよ。慣習的に。
i が使用済みのときは j, k, l... と続く。

もちろんカウンタの値に意味を持たせたいときは、ちゃんとした
変数を使うけどね。
0489デフォルトの名無しさんNGNG
>>487
左側のウインドウ?
0490デフォルトの名無しさんNGNG
>>479
個人的には
initiation(名)開始
で納得してる。
初期値=0でループって意味で。
適当だけどね
0491487NGNG
>>489
たとえばCStringだったら、

CString buffer;
buffer.

ってピリオド入力したらリストが表示されるじゃないですか。
あれが消えちゃったんです。
どうにか修復できないとやりずらくてかないません…
0492デフォルトの名無しさんNGNG
>>491
ツール > オプション > エディタタブ > ステートメントの入力オプション
の設定はどう?
0493デフォルトの名無しさんNGNG
VC++5.0とか・・・

いやだって、6.0になって感動した記憶が・・・・
0494487NGNG
>>492
全部チェック入ってます。

>>493
VC++6.0にsp5だったかな?おそらく最新のサービスパックつけてます。
つけるまえからの問題だったので関係ないとは思いますが…
0495デフォルトの名無しさんNGNG
>>479 >>490
FORTRANの名残じゃない?
あれはI,J,K〜Nとかの真中あたりの変数名はデフォルトで整数で
ループカウンタに良く使ったらしい。

でなんでデフォルトで整数だったかと言うと
数学の行列とか数列でAij とか A0,A1〜An とか添字で良く使う文字
だかららしい。
0496デフォルトの名無しさんNGNG
char a[10]; char b[10];
a[0]='H';
bの配列に文字列として16進表示で代入する。
厨房なのでわかりません。
HELP ME。
0497デフォルトの名無しさんNGNG
>>479 >>490 >>495
iterator の i じゃなかったっけ。
0498デフォルトの名無しさんNGNG
>>496

sprintf(b, "%X", n);
0499デフォルトの名無しさんNGNG
>>497
そのとーり
0500デフォルトの名無しさんNGNG
>>497
FORTRANのとき、interger変数は i,j,k 辺りをよく使うので、
その名残だと思いこんでただ、オイラぁ。

そうじゃなかったのかハ。
0501デフォルトの名無しさんNGNG
SDK で spy++ のウインドウファインダのようなものを作っています。

カーソル下のウインドウのリージョンを太枠でハイライトする、
ここまでは FrameRgn() を使ってできましたが、
フォーカスが外れた時に描画した枠を消去する方法がわかりません。

今のところ、InvalidateRect() で無理矢理再描画させているのですが…
ちらついて汚い!
どなたかわかる方いらっしゃいます?
0502デフォルトの名無しさんNGNG
>501
再描画すべき部分は枠なんでしょ?
だとしたらInvalidateRect()じゃなくてInvalidateRgn()を使え。
CombineRgn()を使って(大きい長方形)−(小さい長方形)で枠のリージョンを作って、それをInvalidateRgn()の第2引数で指定する。
そうすれば枠だけ再描画されるので、中はちらつかないと思う。

リージョンの使い方がわからなければ、ここを参考にしてくれ。
http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/api_index.html
0503デフォルトの名無しさんNGNG
誰かインラインアセンブラでdouble型の戻り値を受け取る方法教えて!
そもそもアキュムレータに入らない?
intとかの戻り値は普通に受け取れたんだけど
0504デフォルトの名無しさんNGNG
コンパイラが吐くコード読め>503
0505503NGNG
やってみます>504
0506503NGNG
できましたー!
ありがとうございました>>504様様

記念age
0507デフォルトの名無しさんNGNG
Visual C++ 6.0で、AVIファイルから音声の振幅を表示させるプログラムを作成しています。
AVIファイルのオーディオ形式はPCM、22.025KHz、8ビット、モノラルです。
入力音声データをBYTE型で配列に蓄えているのですが、double型で配列に蓄えたいのです。
どうしたらこのようにできますか?
教えてください。
0508デフォルトの名無しさんNGNG
キャストして代入しろ>507
for (i = from; i < to; ++i)
  doublearray[i] = (double)bytearray[i];
0509デフォルトの名無しさんNGNG
DWORDってなんですか?
0510デフォルトの名無しさんNGNG
>>509 MSDNで検索しろ
0511デフォルトの名無しさんNGNG
API使って&リソースファイル手書きしてプロパティシートを作ろうとしてます。
一応手元の参考書を見ながらやっているのですが(参考書についてたソースはうまくコンパイルできました)、
参考書では1つのソースファイルに全て記述しているので、
自分のプロジェクトでは、WinMainやメインウインドウのウインドウプロシージャを
書いたものと、プロパティシートのダイアログ初期化とダイアログプロシージャを
書いたものを別々のソースに記述してみました。
(メインのウインドウプロシージャでのメニュー選択のswitchから別ソースにある
自作関数にインスタンスハンドルとウインドウハンドルを渡してプロパティシートを作らせる)
で、ビルドしてみたのですが、コンパイルは上手く行くのに
リンクでエラーが出てしまいました。
「error LNK2001: 外部シンボル "__imp__PropertySheetA@4" は未解決です」
「error LNK2001: 外部シンボル "__imp__CreatePropertySheetPageA@4" は未解決です」
と出ました。必要なcommctrl.hはインクルードしているし、リソースファイルにもダイアログの記述は
したのですが・・・・・
C++の仕様にまだ詳しくないのでその辺のミスだと思うのですが、
わかる方おられたら、ぜひ助言お願いします。
0512デフォルトの名無しさんNGNG
DWORDってなに?
0513sageNGNG
double world
0514デフォルトの名無しさんNGNG
>>512
http://homepage1.nifty.com/susho/windoze/datatype.html
0515SAGENGNG
>>511
comctl32.lib をリンクするように設定するのを忘れてないかい?
0516511NGNG
できた!!!
ありがとうございます!!
なるほど、スタティックリンクのライブラリの設定があったのかぁ〜・・・
厨房ですんまそんー
0517デフォルトの名無しさんNGNG
DOSから動かしたいんですが、CDを入れないと動作しません。
どうしたらいいのでしょうか?
0518デフォルトの名無しさんNGNG
サパーリ意味が掴めんが、CD入れとけば>517
0519デフォルトの名無しさんNGNG
struct hoge{
  char a;
  short b;
  char c;
  int d;
};

なんでこれってsizeof(hoge)が12バイトなの???
自分の計算では10バイトなのに・・

VCの話題でなくてごめんなさい
0520デフォルトの名無しさんNGNG
ネタですね。>519
わたしは確信してます。
でも一応、
「パディング アラインメント 詰め物」で検索してね。
0521519NGNG
ネタにされてる(^^;
いやでもマジなんですよ。ごめんなさい

aa
bb
cccc
dddd
で12バイトって事はわかるんですが(この時点でわかってない?)

最後のintをshortにすると
aa
bb
cc
dd
で8バイトなんですよね

うーむ?
そもそもスレ違いですね。逝ってきます
0522デフォルトの名無しさんNGNG
>>521
#をパディングとすると、ddddが4バイト境界で始まるように、
a#bbc###dddd
になっているんじゃないの?
0523519NGNG
なるほどなるほど
わかりやすい説明どうもでした>>522
0524デフォルトの名無しさんNGNG
MFCの CAsyncSocket つかって通信してるんですけど
数メガのデータ送っても 8640byte に分割されて届きます。
分割されないでGetできる方法はないものでしょうか?
0525デフォルトの名無しさんNGNG
>>524
UDP わかってる?
0526524NGNG
デフォルトのまま SOCK_STREAM でやってます。
UDPではやってません。
CAsyncSocket か CSoket を使えば、送ったサイズで
分割されずにそのまま取得できると聞いたんですが。
デマでしょうか?
0527デフォルトの名無しさんNGNG
SDIにおいてCDocumentクラス中で関連付けられているview classの
デバイスコンテキストは取得できますでしょうか?
0528名無しさんNGNG
GetNextView()->GetXXXDC()でいいんじゃないの。
0529名無しNGNG
>>524
8640byteに分割はされていても、結局は届くんでしょ?
そうじゃなかったらすまん。
でも、いきなり5MB届きましたーって言われんの嫌じゃない?
そこまで原因不明で帯域落ちたりすんのよ、多分。
逐次処理したいでしょ、ファイルに書きこむにしても。
0530デフォルトの名無しさんNGNG
DOS窓でC言語基礎を勉強している者だけど、MS−DOSプロンプトの画面で前に自分で入力した文字を↑キーを押すと戻って表示できるようにするにはどうすればいいのですか?

例えば、「cl ○○.c」したらエラーが出て「edit ○○.c」を↑キーで戻って表示する・・・みたいな

くだらない質問でスマソ
0531デフォルトの名無しさんNGNG
>530

DOSKEY
DOSKEY /INSERT
DOSKEY /?
を実行してみろ。
0532デフォルトの名無しさんNGNG
>>531
めちゃくちゃくだらない質問なのに、答えていただきありがとうございました
0533デフォルトの名無しさんNGNG
ダイアルアップネットワークのアイコンが接続時と切断時で
変わるんだけど(ショートカットのアイコンも)
それってどうやってやるんでしょう?

プログラムで真似できないのかなぁ??
0534524NGNG
>>529
レス、サンキューです。
やっぱ、TCPは暗黙の了解で約8Kってのがあるみたいですね。
まあ、でかい容量を送るときは、UDPとちがって必ず、
送った順に届くみたいだから、そこのところは便利なのかな。

やっぱTCP使ってみます。
0535デフォルトの名無しさんNGNG
ダイアログでフォント使うんだけど、皆さんどんなフォント使ってます?
少なくともWindows標準のでないといけないだろうけど、
どれを使えばいいかさっぱり。
システム標準のをダイアログで使う(フォント無指定)と
文字が大きくて不恰好だし、
かといって安易にフォント指定すると
そのフォントがユーザーのWindowsに入ってなかったら
オブジェクトの位置までずれてしまうし・・・・
MS UI GothicとかTahomaがいいかなと思うんだけど、
これって95/98/2000共通でしょーか?
それか、もしダイアログで、例えばスタティックテキストやチェックボックスの文字の
フォントサイズだけ変更する方法があれば一番うれしいんだけど。
知ってる人居たら教えてください。
0536デフォルトの名無しさんNGNG
WM_SETFONT
0537デフォルトの名無しさんNGNG
>535
フォントを変える必要に迫られたことがないので無指定。
>大きくて不格好
というのはセンスの問題以前の環境の問題があると思われ。

どうしても変えるなら、rcファイルの中見てみれ。
0538535NGNG
とりあえずrcファイル読んでみました。これわ勉強になる〜!
結局MS UI Gothic使って、なんか問題あったら
WM_SETFONT使ってみることにします。
ありがとうございます!
0539デフォルトの名無しさんNGNG
まだ初歩なんですが、2桁以上の整数をscanfではなく
getcharで入力させるにはどうしたらいいんでしょうか?
0540デフォルトの名無しさんNGNG
最適化済みのものをデバッグするのはどうしたらいいんでしょう?
オプションの指定ではじかれてしまう
0541デフォルトの名無しさんNGNG
>>540
ソースデバッグは無理でわ。
関数単位で BP あてたり、スタックトレース程度。

*.dbg 作っておくと最適化したバイナリでもデバッグできるが、
VisualStudio では簡単に作る方法は無かったと思う。

そういう点では統合環境は不自由で不便。使いにくい。
0542デフォルトの名無しさんNGNG
ありゃそーなんですか
じゃ噂に聞く、リリースビルドにしたら動かなくなった
なんてヤツは原因追求が大変なんですね
0543デフォルトの名無しさんNGNG
VC++6.0で2文字以上の文字列を記録する型を教えてくだサイ。。
charだと一文字しかダメですの。
0544デフォルトの名無しさんNGNG
>>543 うむむ、Cわかってますか?
とりあえず、string だけど、用法注意
0545デフォルトの名無しさんNGNG
ゴメン、教えてくれてありがと〜。
今から本読んでみるよ
0546541NGNG
>>542
そうそ、ありがち。
デバッグ用の printf 入れたら落ちなくなっちゃった…なんて。

そーゆーときは大抵、ポインタまわり。メモリ壊してる系の...。
0547デフォルトの名無しさんNGNG
>>543
char *s="koredeiinndakke?";
あれ?これでダメだっけ?
間違ってたらごめん
0548BitBltってなんかかっこいいよねNGNG
Bitmapを上下逆さまにして(180度回転ね)表示したいんだけど
方法はないでしょうか?API見たけど、どうもなさそう。。。
しょうがないから自分でメモリー上で反転させないといけないのかなぁ。。
0549デフォルトの名無しさんNGNG
Win32API(SDK)で
エディットボックスの最後にテキストを挿入(追加)した場合
カーソルの位置も最後尾に移ってしまって、表示もテキストの最後に
移動してしまいます。
エディットボックスの表示とカーソル位置をそのまま維持し
テキストを末尾に追加するにはどうしたら良いですか?
0550543NGNG
>>547
どうも、アリガト
試してみます
0551fuckNGNG
>>548
ビットマップのヘッダーの縦の長さ(具体的には0x16〜のDWORD値)
の符号を反転させれば上下逆さになりますね。まったくお勧めしませんけど。
SetMapModeで専用のデバイスコンテキストについて座標の取り方を
変更してもできそうですね。まったくお勧めしませんが。
0552BitBltってなんかかっこいいよねNGNG
Fine, Ass Hole! わかったよ。
左上隅(x1, y1) 右下隅(x2, y2)
pDC->StretchBlt(x1, y2, width, -height, &mdc, 0, 0, width, height, SRCCOPY);

ホントにアリガト。このfuck野郎!
0553名無しさんNGNG
age
0554名無しさんNGNG
age
0555デフォルトの名無しさんNGNG
くだらない質問ですが、
if(a=b!=0){...}が、bが0の時に実行されるのは何故ですか?
0556デフォルトの名無しさんNGNG
a=b が先に評価されてるからだろ 代入は真を返すよ
0557デフォルトの名無しさんNGNG
大嘘かいちゃった。実行されないぞ
int i,j;
j = 0;
if(i=j!=0){} }
0558デフォルトの名無しさんNGNG
>>555
あなたの勘違い
0559デフォルトの名無しさんNGNG
>>558
>あなたの勘違い
そうともいえないゾ!
aがこんなクラスのインスタンスだったらどうする?
class A {
public:
bool operator=(int b) { return true;}
};
0560デフォルトの名無しさんNGNG
bがfloatだとか
0561デフォルトの名無しさんNGNG
>>560
ダメ
0がfloatにプロモートされるだけ
0562デフォルトの名無しさんNGNG
プロモート ってなんですか?
0563デフォルトの名無しさんNGNG
入力された数字以下の素数を表示するプログラムなんですが、
int main(){
int i,j;
printf("数字を入力してください\n");
scanf("%d",&a);
for(i=2;i<=a;i++){
for(j=2;j<=i;j++){
if(i%j==0){
break;
}
}
if(i==j){
printf("%d",i);
}
}
return 0;
}
とした時にこのscanfをgetcharにかえてプログラムを
作らないといけないんですが、どうすればいいんでしょうか?
ちなみに3行でできるらしいです。
0564563NGNG
二行目のintはint i,j,a;です。すいません。
0565デフォルトの名無しさんNGNG
>>563
素数とぜんぜん関係ねーだろーが。
0566デフォルトの名無しさんNGNG
>>556-561
そうですよね、実行されるわけありませんよね。
何故だ、何故だ? あ〜わかんなくなってきた。
どっかに別の原因があるって事ですよね。探してみます。
(でもウォッチではaもbも0なんだよなあ…VCのバグ?)
0567厨房と言いたきゃ勝手にしろNGNG
TurboCでDOS用ロックマンを作ったんだよ。
文化祭用に。
何故ならVCの理解がわしの頭じゃできなかった。

・・・・・・・・別に。ひとりごとですよ。

VC難しすぎ。
0568デフォルトの名無しさんNGNG
厨房ですいません。
CDocument::Seriallize()で
CBitmapオブジェクトに読み込んだ
画像を保存したい時ってどうやるんでしょうか。
以下ではだめですよね。

void CTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: この位置に保存用のコードを追加してください。
ar >> m_bmPicture; // ←CBitmapオブジェクト
}
else
{
// TODO: この位置に読み込み用のコードを追加してください。
ar << m_bmPicture;
}
}
0569デフォルトの名無しさんNGNG
とりあえず << と >> が逆じゃないか?
0570デフォルトの名無しさんNGNG
CDocument::Seriallize()で
CBitmapオブジェクトに読み込んだ
画像を保存したい時ってどうやるんでしょうか。
以下ではだめですよね。

void CTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: この位置に保存用のコードを追加してください。
ar << m_bmPicture; // ←CBitmapオブジェクト
}
else
{
// TODO: この位置に読み込み用のコードを追加してください。
ar >> m_bmPicture;
}
}
0571デフォルトの名無しさんNGNG
spy++って何が面白いんですか?
0572デフォルトの名無しさんNGNG
>>571
をぃをぃ、そんなことマジで聞いてんの? ハッカーの必需品だろ?

美人のねーちゃんの衣服越しに中身が覗けるところに決まってんだろっ!
APIMON なんか、もっとすごいんだから。もぅ、グフフもんだね、あれは。
0573571NGNG
ウインドウに送信されるメッセージがを覗き見るのが嬉しいんですか。l
0574デフォルトの名無しさんNGNG
>>570
ファイルとしての保管方法自体は、
www.codeguru.comあたりにサンプルがあったような
気がするよ。CBitmapにはアーカイブストリームへ
出力するためのオペレータは実装されてないから
ファイルI/Oを自分でかくか、CBitmapの派生クラスで
<<と>>をオーバーライドせよ。
0575デフォルトの名無しさんNGNG
MFC使うとWinMainないけど省略してるだけ?
コンパイラが自動的に付け加えるってことでいいんですか?
0576デフォルトの名無しさんNGNG
>>575
そ。省略されてる。実体はライブラリの中にある。

MS-Linker は /subsystem:windows のとき、/entry:WinMainCRTStartup が
指定されたものと見なし、リンカはそれを解決することから仕事を始める。

まず渡された *.obj を探していき、なければ *.lib を引き渡された順、もしくは
見つかった順に探していく。MS-Linker はこんなかんじ。

でも棒国のリンカは OMF リンカなので少し違う。

スタートアップルーチンをアセンブルするときに、オブジェクトに
「ここにエントリポイントがあるよ」って埋め込んじゃう。
だから BC++ のリンカにはエントリポイントを指定するオプションがない。

どぅお、わかった?
0577デフォルトの名無しさんNGNG
だから何でSPY++が面白いんだよっ!!!
0578デフォルトの名無しさんNGNG
>>576
微妙に違う
0579デフォルトの名無しさんNGNG
ていうかSPY++の話題なんて今まで一回も聞いたことなかったよ。
0580名無しNGNG
フリーソフト作りたいんだけど、
作ったプログラムをどうやってフリーソフト化(?)
するか教えてください。

フリーソフトのソースってどこにあるの?????????
0581デフォルトの名無しさんNGNG
>>580
フリーソフトの意味
間違えてると思う…
0582OPNGNG
はじめまして。単発スレを立ててしまいましたが
ここで新たに質問させていただきます。
壁にぶちあたってます・・・
他でも質問したのですが解答がなくて・・・。
今回はActiveXで、LabelとEditとButtonのついている
Form型のOCXを作成しているのですが、ViewFormに
貼り付けて動作させようとしたところ、
エラーが発生して落ちてしまいました・・・。
見てみると貼り付けたコンポーネントの
ハンドルがとれていませんでした。
ViewFormの追加の仕方がわるいのでしょうか?
ViewFormを追加して作成したOCXのプロジェクトを
http://203.174.72.112/santa-p/VC++/
にて公開していますので、もしよければ
ダウンロードしてソースを見て
ご指導願えないでしょうか?
また、DLではVC++のソース一式がDLされます。
決してウイルス等ではありませんが、
DLは気が引けるという方もおられると思うので
PG内容をまとめたら説明したいと思います。
ただ時間の制限があり、説明が下手なのと、
説明したら長くなりそうで
実際のソースを見ていただいた方がいいかなと
思いましてDL方式を取らせて頂きました。
P.S.
ViewFormを追加して作成する前には
ActiveXのStaticフォームにAPIでボタン等を
内部的に作成して画面を作りましたがボタンを押下する
イベントをどのように表すのかわからなく
挫折してしまいました。もしこの方法でボタンの
押下処理方法がわかる方がいれば御教授お願い致します。
色々試行錯誤しているのですが、これ以外に
こんな方法でできるというものがあればどうぞ
教えて下さい。お願い致します。。。

開発言語:VC++ 6.0
OS:Windows2000
VC++のMFC ActiveX ControlWizard
http://203.174.72.112/santa-p/VC++/にある
OCXのプロジェクトはaasamp01.LZHというファイルです。
よろしくお願い致します。
0583OPNGNG
すみません。省略されてしまいましたので
一応再度書きました。
P.S.
ViewFormを追加して作成する前には
ActiveXのStaticフォームにAPIでボタン等を
内部的に作成して画面を作りましたがボタンを押下する
イベントをどのように表すのかわからなく
挫折してしまいました。もしこの方法でボタンの
押下処理方法がわかる方がいれば御教授お願い致します。
色々試行錯誤しているのですが、これ以外に
こんな方法でできるというものがあればどうぞ
教えて下さい。お願い致します。。。

開発言語:VC++ 6.0
OS:Windows2000
VC++のMFC ActiveX ControlWizard
http://203.174.72.112/santa-p/VC++/にある
OCXのプロジェクトはaasamp01.LZHというファイルです。
よろしくお願い致します。
0584デフォルトの名無しさんNGNG
>>577
おまえ、なにムキになってんの?
SPY++ にうらみでもあんの?
それとも、自分も「グフフ」したいわけ? (藁
あぁ〜?
0585デフォルトの名無しさんNGNG
>フリーソフト作りたいんだけど、
>作ったプログラムをどうやってフリーソフト化(?)
>するか教えてください。

今なら楽なのは自分でwwwサイト立てる
(気がねとか面倒はこれが一番少ないかな)か
vectorみたいなFREEソフト集めてる所
(のうち悪質じゃないところ)に登録するか。

FREEが無料の意味だと思うなら、
そのとき「これは無料だぜ」と書き添えればいいだけだし、
FREEが自由の意味だと思うなら、
そのときコンパイル済みバイナリだけじゃなく
ソースも添えればいいだけ。「好きに使えや」の一言も添えれば尚ヨシ。

日本じゃ著作権はモノ作れば自ずとつくそうなので、
深く考えなくてもこれだけで「フリーソフトを作れる」
とは言えるのでわないかと。

>フリーソフトのソースってどこにあるの?????????

どこって…
あなたが作ったソフトなら、
ソースはあなたの計算機のDiskにしか有りません。
他のこの世のドコでもなくあなたのDiskにだけ。

逆にいうと、自分のDiskが飛んだり家が火事に
なったりしてソース消失すると悔しいんで
バックアップ取りたいわけだが、
他人様のHDDにバックアップさせたいと思ったら
FREE(自由のほう)ソフトとして公開しちまうのはお得だ(w
場合によってはこれが一番安いかも(w
更に運がよければ、無料で友達が出来たり添削してもらえたり
敵が出来たり(w)するぞ。
0586OPNGNG
>>582, >>583です。
Viewを追加するVC++でのActiveX作成方法をまとめました。
といっても作成手順の参考にさせて頂いた文章そのままですが。。。
1. CMyFormView の作成
1.1 リソースを作成
ResouceView/Dialog/右クリック/挿入で IDD_FORMVIEW を挿入
1.2 CMyFormView の作成
IDD_FORMVIEW が表示された状態で、Ctrl-W を押して、CFormView を
基底クラスとした CMyFormView を作成

2. CMyFormView の修正
2.1 コンストラクタ/デストラクタが protected になっているので public に
変更
2.2 CFormView::Create(...) も protected なので、次のソースを追加
---
public:
BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,
DWORD dwRequestedStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext)
{
return CFormView::Create(lpszClassName, lpszWindowName, dwRequestedStyle,
rect, pParentWnd, nID, pContext);
}
---
2.3 CMyFormView::PostNcDestroy() をオーバーライドして処理をコメントに
する(delete this 動作の禁止)

****CMyControl.cppに追加したFORMVIEWのヘッダーをインクルードする。
0587OPNGNG
つづき
3. CMyControl への CMyFormView の追加
3.1 次の行を CMyControl のヘッダーに追加

CMyFormView m_MyForm;

3.2 次のコードを追加(WM_CREATE, WM_SIZE)
# ClassWizard 使ってください。

int CMyControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_MyForm.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
CRect(0,0,0,0), this, 1/* means ID 適当 */, NULL);
return 0;
}

void CMyControl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy);
if (m_MyForm.m_hWnd != NULL)
m_MyForm.MoveWindow(CRect(0, 0, cx, cy), TRUE);
0588OPNGNG
このようにしてView追加をしたActiveXを作成したのですが、確かにViewは
追加されるのですがそのViewの上に置いたコンポーネント(ButtonやEdit等)
のハンドルが取れずGetWindowText等の処理ができなく困っています。
何か手順がおかしいのでしょうか?
また、CMyControl 上に直接置く方法も考えましたがFormがあるわけではないので
どのように追加したらいいのかがわかりませんでした。
APIで画面を作成してもみましたがAPIで作成したボタンの押下処理をどこで判断するのか
これまたわからず挫折しました。。。
こちらの方法でもわかるという方がいたら御教授よろしくお願い致します。
また、この方法以外でも画面タイプのOCXの作成方法があるという方は、
作成手順、方法を教えて下さい。
どうぞよろしくお願い致します。
0589デフォルトの名無しさんNGNG
CFileDialogでデフォルトで開いているディレクトリの位置
を指定するにはどうしたらいいでしょう?
なんか、毎回開くたびにワークスペースがあるディレクトリに初期化
されてしまうので…。
0590OPNGNG
VC++ 6.0で開発中ソースをたった一行コメントにしたら
こんなエラーでちゃったんですけど。。。
どうすれば修復できるのでしょうか?
コメントもとに戻してもエラーは出たまんまです。
さっきまできちんとコンパイル通っていたのに・・・
mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 はすでに MSVCRTD.lib(dllmain.obj) で定義されています
mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 は MSVCRTD.lib(dllmain.obj) で定義されています; 2 つ目以降の定義は無視されます
ライブラリ Debug/NMA03.lib とオブジェクト Debug/NMA03.exp を作成中
Debug/NMA03.ocx : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました
link.exe の実行エラー
0591デフォルトの名無しさんNGNG
>>589

CFileDialog::m_ofnをいじる。
OPENFILENAME構造体の内容はMSDNで調べれ。
0592589NGNG
>>591
自己レスですが
::SetCurrentDirectory()
でOKでした。
0593デフォルトの名無しさんNGNG
>584
してえ!今すぐ何が面白いのか教えろ。
0594デフォルトの名無しさんNGNG
MSDNのお気に入りって、他に持ってく時、どこ持ってけばいいの?
0595デフォルトの名無しさんNGNG
VC++でMAME32のコンパイルってどうやったら出来ますか
色々調べたんだけどC++Builderのやりかたしか見つからなかったです
0596デフォルトの名無しさんNGNG
>>594
ひとつで良いなら、開いておいて、移動から現在のURLをゲットすればOK。
まとめたやつは
C:\WINDOWS\Application Data\Microsoft\HTML Help\hh.dat
みたい。
0597デフォルトの名無しさんNGNG
>>596
多謝です!
0598デフォルトの名無しさんNGNG
>>593
う〜んと、一言で説明するのは難しいなぁ...。
説明しても、おまえには面白くもなんともないかも知れんぞ。
第一、ここじゃあ、スレ違い。

あるスレにちょこっと書いとくから、ソノ気があるなら探せ。
0599デフォルトの名無しさんNGNG
無い。どこにも無いぞ。
0600デフォルトの名無しさんNGNG
>>598
えっちねた板にある書き込みのことか?(w
0601ななしNGNG
PCカードのA/D変換を使ったアプリケーションを
作ろうと思いますが、PCカードに関して、
A/D変換に関しての有益な情報を
お願いします。
0602でふぉるとノ名無シサンNGNG
>>593,599

SPYをgooの英和辞典で調べると「偵察」となっている。
派生で、SPYHOLEというものがあって意味は「のぞき穴」。
で、SPY++は何をするものかというと、
Windowsをはじめとするソフトウエアの「穴」を探すツールで、
「グフフ」とできるかどうかは、「のそき穴」の先が何かによるでしょう。
0603デフォルトの名無しさんNGNG
ファイルを開くときの参照で出てくるあのウインドウって
何かの関数やマクロで使えるんでしょうか?
生WindowsAPIで使いたいのですが、よかったらどなたか教えてください。
お願いします
0604デフォルトの名無しさんNGNG
>>603
はい。
0605でふぉるとノ名無シサンNGNG
>>603
↓ここに見て
http://www.venus.dti.ne.jp/~takatomo/win32/getopenfilename01.html

>>593
上のページを開いて[NEXT→]を押して。
SPY++を使った例があるから
0606デフォルトの名無しさんNGNG
Win2000とかWinMeタイプの「ファイルを開く」
(左側にマイコンピュータとかデスクトップとかあるやつ)
はどうやって開くんでしょうか?
0607デフォルトの名無しさんNGNG
OPENFILENAME open_file_name;
memset(&open_file_name, 0, sizeof(open_file_name));
open_file_name.lStructSize = sizeof(open_file_name);
GetOpenFileName(&open_file_name);
0608デフォルトの名無しさんNGNG
WM_APPについて質問です。

アプリケーションでローカルなメッセージを定義したいときにはWM_APPを使えと
いうことは各種の資料を読んで理解したのですが、googleでWM_APPを検索して
出てきたサンプルソースコードは大抵「WM_APP+100」というように、100を加えて
いるのです。

これには何か理由があるんですかね??
0609デフォルトの名無しさんNGNG
>>611
ない。
0610デフォルトの名無しさんNGNG
>>609
611 って、だれ?

↓おまえか? こたえが↑になるように、ちゃんと質問しろよ。 (藁
0611611NGNG
動的リンクされるMFC60.DLLのリビジョンを調べて動作を分けるために簡単な方法はありますか?
0612610NGNG
>>611
よしっ、ごーかぁーくっ!! (爆
確かに簡単な方法は「ない」。 >>609
0613デフォルトの名無しさんNGNG
何か時間の流れがおかしくなってるよ、ここ(藁
0614611!=609NGNG
MFC60じゃなくてMFC42だわな…ネタが中途半端になってしまった。宇津出汁脳。
0615歩NGNG
現在WinSDKにてC言語でゲームつくりしてます。
MFCに移行しようとおもいのですが、この場合、使用言語はC++でないと
いけないのでしょうか?MFC + C言語はだめなのでしょうか?
0616デフォルトの名無しさんNGNG
いいんじゃない?自分でいじる範囲はCで書けば。
ただ、MFC自体がC++だし、触らないわけにはいかないと思うけど。

既にSDKレベルでゲーム作れてるんなら
無理にMFCなんか触らなくてもいいじゃん。いいことないよ。
MFCじゃないと出来ないことなんて何も無いんだから。
0617デフォルトの名無しさんNGNG
VC6でゲーム作ってるんですが、
よくMSのソフトで「Build 2560」とかでるじゃないですか。
なんとなくカッコイイんで自分のプログラムでもビルドするたびに
カウントアップするようなのを付けたいんですが、
これってVC6の統合環境での機能としてあるんでしょうか?

__DATE__とかみたいに自動で定義してくれるといいんですが。
0618デフォルトの名無しさんNGNG
>>617
BCB ならビルド番号を自動でカウントアップしてくれるけど、
VC なら VBS でガリガリ作ってやる必要がある。
MS のどっかにその VBS があったと思うぞ。
0619デフォルトの名無しさんNGNG
VC++っていうよりはDevStadioの質問になるかもしれないんですが、自分の使っているVC++の環境を
他のマシンに移すときってみなさんどうしていますか?
キーの設定とか、ウィンドウ配置だとか、ツールバーだとか・・・

特にキー設定を移す方法がわからなくて、レジストリ等散々探してみたんですがこれというものを
見つけられませんでした。
0620デフォルトの名無しさんNGNG
>>619
探し方が悪い
レジストリにもろにあるぞ
0621デフォルトの名無しさんNGNG
Win2k環境でVC++6.0を使ってるんですけど
C:\WINNT\Temp\no.datの場所のファイルを
読み込みたいんですが
warning C4129: 'W' :
エスケープ シーケンスとして正しく認識されませんでした。
って表示されてしまいます。
で、C:\\WINNT\\Temp\\no.datに変えてみて
実行してみたらちゃんと読み込めず
デバックエラーっていうダイアログが出てきてもう
どうすることもできません。
誰か解決方法わかりますか?
0622デフォルトの名無しさんNGNG
>>621
オープンはできたが621のヘタレコードでクラーシュしているだけだと思われ。
デバッガ使えよ。
0623デフォルトの名無しさんNGNG
WINNTディレクトリへのアクセス権が無いとか
0624621NGNG
if(file == NULL){
printf("ファイルオープン失敗\n") ;
exit(1) ;
}
これ付けてみたらファイルオープン失敗って
でちゃいます・・・。
ちゃんと読み込めてないんでしょうね。
ちゃんとアクセス権もありますけど無理っぽいです。
もうしんどくなってきた、ちょっと逝ってきます。
0625デフォルトの名無しさんNGNG
libpng.libを使いpngファイルを読み込もうとしてるのですが
プロジェクトのC++タグ、コード生成を「マルチスレッド(デバッグ)」
にすると問題が無いのですが、「マルチスレッド」にすると動かないんです。
しかもF5で実行すると「マルチスレッド」であっても問題がでません。

メモリ確保の関係でこけてる気がするのですが、デバッグモード(!=デバッグバージョン)
だと動いてしまうので確認もできず途方に暮れています。
もし何かご存知の方、いらっしゃいましたらアドバイスお願い致します。
0626625NGNG
古いライブラリに替えた最初の一回だけ動いたり…分からない

質問をかえて、ctrl+F5で実行した場合とF5で実行した場合とでは、
何が違ってくるのかだけでも、よろしければ教えて下さい

何かdefineでもされてるのでしょうか
0627デフォルトの名無しさんNGNG
>>625 私も知りたいのであげておきます。
0628デフォルトの名無しさんNGNG
ダイアログベース+エディットボックスで以下のようなプログラムを作りたいんですけど
どなたか教えて下さい。
1.画像ファイルを読み込む(jpeg,tif,bmp等種類を問わずに)
2.エディットボックスに入れた文字をその画像の上に載せる
3.その画像をダイアログに貼り付ける
0629デフォルトの名無しさんNGNG
>>628
何を教えて欲しいのか教えてくれ。
0630デフォルトの名無しさんNGNG
1〜3のやり方が分からないんです。
0631デフォルトの名無しさんNGNG
1.どんな画像ファイルでもDIB形式に変換できるCOMを持ってくる。もしくは自分で書く。
2.メモリDCに1で読んだDIBを張り付け、GDIで文字を上書き
3.あらかじめビットマップコントロールをダイアログに張っておいて、そこに2でできたDIBをBitBltする。

いじょ。
0632U-NNGNG
CPictureHolder
0633デフォルトの名無しさんNGNG
>>631
そのCOMはどこにあるんでしょか?
0634デフォルトの名無しさんNGNG
1.買う
2.拾う
3.書く
0635デフォルトの名無しさんNGNG
>>634
書きますので教えて下さい。
どういう風に書けばいいんでしょうか?
0636デフォルトの名無しさんNGNG
1.ファイルを開く
2.データを読む
3.展開する
0637デフォルトの名無しさんNGNG
>>636
取りあえず1のコードから教えて下さい。
0638デフォルトの名無しさんNGNG
それくらい自分で調べていただこう。
ヘルプにも書いてあるし付属のサンプルだってある。
チュートリアルにも書いてあるよ。
0639デフォルトの名無しさんNGNG
>>638
すいません。
そうですね、CFileDialog 使えば良いんですよね。
2.のデータの読み込みってどうやれば良いんですか?
0640デフォルトの名無しさんNGNG
それくらい自分で調べていただこう。
ヘルプにも書いてあるし付属のサンプルだってある。
チュートリアルにも書いてあるよ。
0641デフォルトの名無しさんNGNG
>>639
普通に CFile::Read でいいでしょう
0642デフォルトの名無しさんNGNG
>>640
えっと確認なんですけど、CFile::Readを使うの?違いますよね?
0643デフォルトの名無しさんNGNG
それくらい自分で(以下略)
0644デフォルトの名無しさんNGNG
>>641
アウチ!
使えばいいのか。
3.展開するってのはどうすれば良いの?
0645デフォルトの名無しさんNGNG
読み込むフォーマットによる。
なにがしかの圧縮がかかっていれば展開する。
それぞれのフォーマットでどうデータが格納されてるかは自分で調べれ。
たいてい展開するコードが公開されてるよ。

ていうか2chをリロードしてるヒマがあったら手を動かせ。
ヘルプ読め。webを検索しろ。
0646デフォルトの名無しさんNGNG
AppWizardでSDIで作成されたものにスプリットウインドーで分割しました。

CMainFrame >> CSplitterWnd >> CView
これを、次のようにしたいのですが、
CMainFrame >> CSplitterWns >> COtherFrame >> CView
終了したときにエラーになってしまいます。(WINFRM.cppの829行)
OnCreateClientでCCreateContexをいじってみたりしましたが、駄目でした。

この場合、どのようにすればいいのでしょうか?
0647625NGNG
なんとも情けないことにメモリ確保のチェックミスでした。
F5やマルチスレッド(デバッグ)で実行した場合は、たまたま
必ずチェックを通ってしまうという現象が起きていたみたいです。
つまらない質問をしてしまい、大変申し訳ありませんでした。
>>627
同じような所でお悩みのようですが、原因はたぶん別のことだと思います。
私のはマヌケすぎな理由だったので。何か力になれると良いのですが…。
0648デフォルトの名無しさんNGNG
ソースウィンドウの色変えたい。
背景色とか。
どーすればいいの?
0649SAGENGNG
ツール(T)オプション(O)書式背景(B)
0650デフォルトの名無しさんNGNG
 騙し騙し、STLを使うようになったのですが、
カベに当たってしまいました。ソースが汚いですが、見てやって下さい

----------------------------------------
#include<stdio.h>
#pragma warning( disable : 4786 )
#include <vector>
#include <map>

typedef struct{
int aaa;
char *bbb;
} T_CCC;

vector<map<int,T_CCC>::iterator> m_vec;

void procs()
{
vector<map<int,T_CCC>::iterator> p;

p = m_vec.begin();
for( ; p != m_vec.end() ; p++ )
{
printf( "%d", p.second.aaa ); // ←このコードがエラーになります
}
}
----------------------------------------

 mapで管理しているもののうち、一部のパターンに乗るものだけを
別途リスト化したいと思い、書いたコードです。
多分、こんな方法を使わなくても、色々な良い方法があると思うのですが、
多重化しなければ成らなくなった時の例題ソースにもしたいので、
解決できると有り難いです。
コンパイラは"MS-VC++6.0pro"で、(関係無いですが)MFC非使用です。
0651650NGNG
スペースを半角で書いていたので、全部飛んでしまいました。
さらに見難くなってしまってすみません m( _ _ )m
0652デフォルトの名無しさんNGNG
>>650
一応こんな風に解釈してみました。外してるかな?

void procs()
{
    vector<map<int,T_CCC>::iterator>::iterator p;

    p = m_vec.begin();
    for( ; p != m_vec.end() ; p++ )
    {
        printf( "%d", (*p)->second.aaa );
    }
}
main(){
    T_CCC a = { 5, "a" };
    T_CCC b = { 8, "b" };
    T_CCC c = { 3, "c" };

    //a,b,cをmapで管理している
    map< int, T_CCC > _map;
    _map[ a.aaa ] = a;
    _map[ b.aaa ] = b;
    _map[ c.aaa ] = c;

    //a,bを一部のパターンに乗るとして別に管理
    m_vec.resize(2);
    m_vec[0] = _map.find( a.aaa );
    m_vec[1] = _map.find( b.aaa );

    procs();
}
このやり方、正直回りくどくしちゃってるだけの気もします(^-^;
0653652NGNG
回線切ってから気づいた。_mapにコピーしといて管理もなにもないですね。
すいませんが適当に読み替えといてください。
あとvector<map<int,T_CCC>::iterator>::iterator pには御注意をば。

うーん、mapで実体を持つなら上のもありですが、そうじゃないなら
vector< T_CCC* >m_vecの方が良いと思います。
0654650NGNG
>>652様

 解釈は微妙に違ってましたが(^^;
エラーは完全に回避することが出来ました。
徹夜明けだったものですから(言い訳です)、カッコ付けるのを試してませんでした。
というか、”試す”なんて書いている時点でダメプログラマですね(爆)

 mapの方には500件程度のデータがあり、
vectorに入れなければ成らないのは10件程度で、
mapのキー以外で検索しなければならないものでしたので、
こういう形にすることになってしまいました。

 まだSTLの本を全部読み終わって居ないので何とも言えないのですが、
"反復子"と"ポインタ"っていうのは、元アセンブラプログラマから見ると、
同じに見えてしまっていまして、現在vectorのほうに"*"を付けてませんでした。
この処理は、今後バグを生む事は分かっているのですが、どういう結果になるか
興味があるので、結果を知ることが出来るまで、このままにしようと思っています。
(一応、(mapは位置が保証されるとの事なので)mapに実体を持っています。)

 ただ、この処理自体が、スレッドで、1秒間に30回ほど実行されるものなので、
ほかの怖いバグ(クリティカルなもの等)に悩まされることだろうと思います。(^^;

 ということで、速い回答を頂き、感謝します。
私も、色々な質問に回答が出来るくらい、精進しなければ・・・(^^;;
0655不定形ウィンドウNGNG
はじめてMFCアプリつくってるのですが、
ダイアログベースで作成したアプリそのものを、
SetWindowRgnをつかって不定形ウィンドウにしたいのですが
どのように適用すればよいでしょうか?
教えてください
0656momoNGNG
質問の仕方がわからず、同じことを単独スレで建ててしまいました(汗)
重複してしまうのですがこちらでも質問させて頂きます。
プログラム中からアクセス権を変更するにはどうしたらよいのでしょうか?

2ch初心者でして、もしご質問手順に間違いがありましたら、合わせてお教え願います。

宜しくお願いします。
0657デフォルトの名無しさんNGNG
>>656
まず2ちゃんガイドをよ〜〜〜〜〜〜〜っく読んで、初心者板で1ヶ月修行してこい。
0658デフォルトの名無しさんNGNG
>>657
なんで?
質問スレで質問して何が悪いの?
0659無責任な名無しさんNGNG
VCってMACのソフトウェア開発できるんですか?ヘッダファイル中の
#if !defined(_WIN32) && !defined(_MAC)
なんていうのを見かけるたび気になるのですが…
0660デフォルトの名無しさんNGNG
現在VC++5.0LearningEditionでSTLを使って組んでいまして
VC付属のやSGI、STLportなどいろいろなSTLを試してみたんですが
どれも理不尽に近い不具合があって、うまくいきません。
中には、VC++5.0SP3を組み込めば直るというものもあるんですがLEなんで
それも無理だし・・
VC++5.0LEで問題なく使えるSTLって何かないでしょうか?
あったら教えて欲しいです。
それともVC++5.0LEには見切りをつけて、VC++6.0に買い換えた方がいいでしょうか?
0661デフォルトの名無しさんNGNG
>>660
VC6(pro以降)を買うのが良いかと。
でも初心者が学習用に使うにはお金がもったいないから、
とりあえずgccとかBCCとかタダで手に入るの使えば?
身を持って感じてると思うけど、
個人で製品買っちゃうとVerUpの度に付き合うのは苦痛だよ。
(VC6は結構寿命長かったけどね)
0662デフォルトの名無しさんNGNG
>>659
MAC用のOfficeとかIEとか作るときにでもMSが
内部で使ったのかと。
ここでふと思ったんだが、ということはMACにも
WIN32 APIが移植(?)されてる、ってことなのかな?
0663RIP_MAPIRONGNG
>>660
もしかして、fiend operatorうんぬん のことかな。

VC6 pro sp5 を仕事で使ってる。
0664デフォルトの名無しさんNGNG
いつのまにやらsp5ですか。
0665660NGNG
>>661
プ、プロ版っすか!?スタンダートじゃよろしくないですかね?
8万はキツイっす・・。
BCCはDirectXと相性が気になって今まで避けてたんですが
手元にあるので使ってみようと思います。
ありがとうございました。

>>663
それかどうかはわからないんですが、
VC版は、コンテナに積むオブジェクトは、<二項演算子などが使えなきゃ駄目、
SGI版は、イテレーターのoperator->()が使用できない、
STLport版は、リバースイテレーターのoperator->()定義でerror C2102
になるなどです。
0666におNGNG
今、以下のようなHDDへのアクセスの速度を測定するプログラムを仕事で作っています。
環境はWin98,VisualStudio6sp2E(Enterprise Edition)です。

測定の方法が少々特殊なのですが、
1. 10MBのデータを書き込む
2. 1分待つ
3. 1で書き込んだでーたを読み込む
4. 1分待つ
5. 以上を480回(ほぼ8時間)繰り返して時間を測定する

このような動きをするプログラムを作って、
うちの会社で販売しているソフトがインストールされている場合と
されていない場合の速度差を比較したいのです。

で、一応プログラムは出来たのですが、
書き込み時はいいのですが、読み込み時はディスクキャッシュを読んでしまい、
HDDへアクセスしてくれません。
ディスクキャッシュを使わないで、
HDDから読み込んでくれるようにする簡単な方法はないでしょうか?

ちなみに、Windowsのスワップファイルのサイズをほぼ0にしたところ、
Windows自体がすごく遅くなってしまい、論外でした。
0667デフォルトの名無しさんNGNG
複数のファイル使えば>666
0668RIP_MAPIRONGNG
>>666
当てずっぽな回答かもしれないけど
適当なメモリを確保して解放する処理をかませてやれば
ディスクキャッシュを事実上無効にできそうな気がするが。
例:
int* lpInt = new int[HeavyNumber];
for(int i=0;i<HeavyNumbe;i++) lpInt[i] = i;
delete []lpInt;
0669におNGNG
ご回答ありがとうございます。
ちなみに、スワップファイルのサイズ -> でぃすくきゃっしゅのサイズ
の誤りでした。仮想メモリを小さくしてどうするねん。
>>667
240回読み込みテストを行うので、240個もファイルを作らないといけません。
しかも、どの読み込みテスト時にもキャッシュが使われないという
保証がいまいち得られないのが、ちょっと...
>>668
なるほど。でも、確保したメモリがスワップされてしまうのでは...
0670RIP_MAPIRONGNG
>>669
>確保したメモリがスワップされてしまうのでは
それが目的だと思うが。

GlobalMemoryStatusでHeavyNumberの値を調節して1分待つ間に
ディスクキャッシュを事実上無効にする処理を終了すれば良いのでは。
0671デフォルトの名無しさんNGNG
しかし、作ってるソフトってHDDのアクセス高速化ソフトなんだよね。
Windowsのキャッシュを使ってると恩恵受けられないようなソフトに何の意味が。
それに、そんな特殊環境で得られたデータを使って宣伝されるのかと思うと恐ろしい。

で、なんて会社のなんてソフト?
0672デフォルトの名無しさんNGNG
おもいっきし捏造ですよね。(w
0673デフォルトの名無しさんNGNG
HDDへの高速化ってどうやるんですか?
0674デフォルトの名無しさんNGNG
VCの_Tと_TEXTと同じように使っていいのでしょうか
_Tは対応しているときはwchar_tで_TEXTはunicodeにおきかえられる
とMSDNに書いてあったんですが、実質的にはwchar_t == unicodeと
考えていいのでしょうか?
_Tと_TEXTを混同して使ったときに問題が起こるケースがあるとしたら
どんなときでしょうか。
よろしかったら教えてください。
0675デフォルトの名無しさんNGNG
VC++では、wchar_t に入るのは UTF-16の文字。_Tは_TEXTの省略形。
それ以前に、将来UNICODEアプリを作るために・・・・みたいなアホな動機の
ためにいちいち_Tつけるのか?
_T"text"とかじゃなくて、ふつーに "text"ってやれば。
0676デフォルトの名無しさんNGNG
>>675
NT系でもcharで問題ないのでしょうか?
そこらへんがよくわからないのでとにかく_Tをつけたり、
TCHARを使っているんですが
0677デフォルトの名無しさんNGNG
>>676
NTでもXxxA系のAPI実装されてるから動くが、
ネイティブじゃないので微妙に遅いらしい。
0678デフォルトの名無しさんNGNG
>>677
返答ありがとうございます
NT系では_Tとしといたほうが無難ということでしょうか
0679デフォルトの名無しさんNGNG
CListBoxを作成(Create)する時
ダイアログに貼り付けたいときは
OnInitDialog()
に記述するのは分かったけど、
ActiveXコントロールに貼り付けたい場合ってどうするんですか?
OnCreateしか思い浮かばない。。。
0680デフォルトの名無しさんNGNG
貼り付けたいって、貼り付ければそれで終わりジャン
0681680NGNG
>>679
ごめん
>>ActiveXコントロールに貼り付けたい
これはちょっとわかんないや
0682デフォルトの名無しさんNGNG
OnCreate で良いと思うけど。
0683デフォルトの名無しさんNGNG
structとtypedefってどう違うのだろう?
同じように思えるんだけど・・・。
0684デフォルトの名無しさんNGNG
>>683
どの辺が???
ぜんぜん違うけど・・・・・
0685デフォルトの名無しさんNGNG
683はコピペ
0686デフォルトの名無しさんNGNG
>>678
NT用と9X用の2種類の実行ファイルを別々にリリースすんのか?
0687デフォルトの名無しさんNGNG
HDへのアクセスを早くするプログラミングってどんなんですか
0688におNGNG
>>671 など
HDDのアクセスを速くするソフトを作っているのではありません。

データのアクセスにからむ常駐ソフトを作っているのです。

>>672
別に捏造はしませんよ。実験内容は、そのままユーザに伝えます。


ちなみに、ディスクキャッシュを使わずに、HDDへアクセスする方法はわかりました。
CreateFileの関数で、FILE_FLAG_NO_BUFFERINGフラグを指定すればOKでした。
ちょっとした、条件が絡むので少々面倒でしたが。

それでは、ご回答していただいた方ありがとうございました!
0689デフォルトの名無しさんNGNG
>>688
キャッシュ使わずにアクセスするのにかかる時間を
使うこと自体捏造ではないのですか
0690デフォルトの名無しさんNGNG
なんに使うソフトかは知らないけど、
ほぼ滅多に存在しない条件でのデータに
なんの価値があるのでしょうか

>クライアントを納得させる資料
そうか
0691689NGNG
>>690
なーる
一般向けアプリにしてはお粗末過ぎるもんね
0692デフォルトの名無しさんNGNG
ここって半分くらいはシロートなの?
学生みたいな雰囲気のレスがあるな
0693デフォルトの名無しさんNGNG
クラスの中のクラスからそのコンテナクラスを参照するには
どうすればいいんですか?
0694デフォルトの名無しさんNGNG
>>693
そのクラスにコンテナクラスインスタンスの参照渡しとけばいいじゃん。
0695デフォルトの名無しさんNGNG
>>692
シロートや学生ってそんなに悪いことなのかねぇ…。
あんただって知らない分野逝ったらシロートでしょ?

つーか、そんな事言うのは年寄りの証拠だね。

あ、俺は学生じゃないよ。下っ端だけど(藁
0696デフォルトの名無しさんNGNG
「カントン」ってなんですか?
0697デフォルトの名無しさんNGNG
VCを使ったデータベースプログラムなるものを勉強したいのですが
参考になる書籍が見つかりません。
どなたか道を示してもらえませんか。
お願いします
0698デフォルトの名無しさんNGNG
>>695
別に言わんでも下っ端だって分か
0699デフォルトの名無しさんNGNG
例えば"ABC"という文字列を、何らかのエフェクトを
かけて(たとえばだんだん明るく)表示したいと思ってます。

GDIでできるのか、あるいはDirectXやOpenGLを使った方が
いいか迷っています。

ゲームではないです。どれを使ったらいいでしょうか?
0700デフォルトの名無しさんNGNG
きり番get!
0701デフォルトの名無しさんNGNG
>>699
ゲームじゃないならGDIでいいんじゃない?
問題なく作れるよ。ただ、パレット使えない画面モード
(16bit以降)はグラデ書き換えだけでも遅くなるから、
あんまり大きい画像には向かないと思う。
(DirectXとかだと、その辺をビデオカード側のハードウェア機能で
代替してくれる可能性があるかもね。)
0702デフォルトの名無しさんNGNG
ひとつだけ言えるのはDirectXだろうがGDIだろうが
だんだん明るくしてーとかのフィルタは自分で書かなきゃいけないってこと。
3Dのライティングでどうこうすればできるのかもしれないけど、
それはきっとGDIでチマチマ書くよりずっとずっと大変。
0703699NGNG
>>701,702
早速のレスありがとうございます。
GDIでやってみようと思います。
0704この業界から逃出した男NGNG
>>699
{
static int i = 0 ;
HDC hDC = GetDC( hWnd );
SetBkMode( hDC , TRANSPARENT );
SetTextColor( hDC , RGB( i , i, i ) );
TextOut( hDC , 0 , 0 , "宇津だ死のう" );
ReleaseDC( hWnd , hDC );
i++;
if( i >= 255 ) i = 255;
}

これをタイマー呼出しとかする毎呼出してごらん。
とか言ってみるテスト。
0705699NGNG
>>704
そうです。やりたかたったのは、こんな感じのやつです。
どーもありがとうございます。
0706デフォルトの名無しさんNGNG
>>704
やっぱりそうするよね

>問題なく作れるよ。ただ、パレット使えない画面モード
>(16bit以降)はグラデ書き換えだけでも遅くなるから、
とか
>だんだん明るくしてーとかのフィルタは自分で書かなきゃいけないってこと。
たかが文字の色を変えるだけで、なんでそんな回りくどいことをするんだ
発想硬すぎ
0707この業界から逃出した男NGNG
これだからオールドタイプは。(藁
まあ、確かに昔は16bitカラーでの処理とか重かったですけどね。
ゲームではない、つまり60fps出なくて良いからもっと楽々出来るし。
0708デフォルトの名無しさんNGNG
>>706
なんでそうなる? 701が言ってるのって、GDIなら>>704みたいのを
自分で書く必要があるぞって言うまさにそのことじゃないのか?
0709この業界から逃出した男 NGNG
>>708
だから、GDIに画面モード、画面の色数は関係ないと言う事。
「ただ〜」から始まる言葉が全然見当違いな事を逝っているって事でしょ?

いや、違うか、GDIで画面モードが関係すると言えば…
GetPixel とか使えって言ってるのか!?
0710デフォルトの名無しさんNGNG
GDIでパレットを使っても、結局近似色で塗られるだけ。
だから速度にパレット云々は関係ない。
DirectDrawでやるならパレットの意味もあるが。
どちらにしてもテキストの色を変えるだけなら、根本的に的外れな話だ。
0711この業界から逃出した男 NGNG
GDIでも、ディスプレーモードを変えてシステムパレットを弄る事は出来るけどね。
0712デフォルトの名無しさんNGNG
よく、ウインドウのメニューでヘルプだけ右によってるのがあるんですが、
あれってどうやってるんですか?
0713デフォルトの名無しさんNGNG
MFT_・・・
0714デフォルトの名無しさんNGNG
COMポートが存在するかどうか調べるにはどうしたらいいでしょう?
全部開いて、開けたのが存在するデバイス?
0715デフォルトの名無しさんNGNG
>>714
レジストリを当たれ。
HKEY_LOCALMACHINEの下のどっか。
0716デフォルトの名無しさんNGNG
>>715
レジストリを見てみたんだけど、実際に今あるかどうかの
判断が分からなかったので、開けるかどうかで試してみました。

ところが、CreateFileで開いたのですが、COM10以降が開けないみたいです。
これって、どうしたら良いんでしょう?
カードH"は間違いなくCOM13で動いているのですが・・・
0717デフォルトの名無しさんNGNG
\\.\COM10 とかそんな風に開け>>716
0718714=716NGNG
>>717
できました!さんきゅ〜です。
0719デフォルトの名無しさん NGNG
CMapStringToObのオブジェクトサイズを知るにはどうしたらよいのでしょうか?
sizeofで得られるサイズは管理領域ですか?
0720デフォルトの名無しさんNGNG
CAsyncSocket または CSocket をメインのダイアログとは違うスレッドで作成しようとすると。
Createで死んじゃいます。

詳しく書くと、メインのダイアログからCWinThreadから派生させたクラスを作り、
CreateThreadまたはAfxBeginThreadでメインとは違うスレッドを作成します。
そのスレッドからCSocketの親になるウインドウを作成します。
で、そのウインドウから CSocketを作成しcreateを実行すると死にます。
スレッドを実行させないと問題なく動作するのですが・・・・。

CAsyncSocket または CSocket が メインとは別スレッド上では動作しないなんて話はないと思うのですが・・・・

同様なことで詰まった方や、何かご存じの方がいらっしゃいましたらレスよろしくお願いします。
0721デフォルトの名無しさんNGNG
わーいバグみっけヽ(´ー`)ノ
#include<vector>
#include<algorithm>
#include<string>
int main(){
std::vector<std::string> v;
std::find(v.begin(), v.end(), "");
return 0;
}

cl -GX -Ox -Ob2 bug.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

bug.cpp
bug.cpp(8) : fatal error C1001: 内部コンパイラ エラー
(;´Д`)
0722720NGNG
解決しました。ナレッジベースに載ってたし。
鬱だ。
0723デフォルトの名無しさんNGNG
クリップボードが変更された時に反応させるにはどうしたらよいのでしょう?
幾つかページを見て試したけど意味不明で、できたソフトも死にまくり…
0724デフォルトの名無しさんNGNG
>>721
cl.exe 13.00.9030(VC7 in .NETβ1) ならコンパイルできた。
まぁ、バグですな。
0725デフォルトの名無しさんNGNG
がいしゅつかなぁ・・・・

ダイアログベースのアプリでどこにもフォーカスを当ててない状況で
リターンキーを押すとアプリが終了してしまいます。
これはなぜ?
0726SAGENGNG
>>723
SetClipboardViewer でウインドウを登録したら、
変更のたびに WM_DRAWCLIPBOARD が送られる。

>>725
コレかな?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=989902845&st=85&to=89&nofirst=true
0727725NGNG
>>726
それだ、さんきゅ〜
0728デフォルトの名無しさんNGNG
VC6.0のassertマクロですが
#define assert(exp) (void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )
これって思いっきりバグじゃないですか?
(exp) && (assert ...
こうならないといけないと思うのですが。
どっちにしろ、式が0でもassertしちゃうじゃないっすか、これだと
0729デフォルトの名無しさんNGNG
#define assert(exp) ((exp)? (void)0 : _assert(#exp, __FILE__, __LINE__))
0730728NGNG
>>729
いや、それはわかりますが、
あえて論理演算でやろうとすると・・・ってことで。
あと、_assertと(void)0は逆ですよね
0731デフォルトの名無しさんNGNG
>>728
「バグじゃないですか?」とか言う前に、自分で何を確かめたのか言ってみれ。
確かめてないでしょ
0732728NGNG
>>731
たしかめたよー
おめーこそちゃんとたしかめろよー
0733デフォルトの名無しさんNGNG
>>731
ふむ。では、「なにを」「どうやって」たしかめて、728の結論(=assertマクロが
仕様を満たしていない)に達したのかプレゼンしておくれ。
10行くらいのテストプログラムを書いてくれればいいんじゃないかな。
0734デフォルトの名無しさんNGNG
>>733
教えて君発見!!
0735デフォルトの名無しさんNGNG
>>728
ぜんぜんバグって無いよ。
assert()の仕様と式の評価規則をよく考えてごらん。
0736728NGNG
>>735
バグってるよー
たしかめてみそ
0737デフォルトの名無しさんNGNG
>>376
---コード1---
#include "assert.h"
int main(int argc, char* argv[])
{
    assert(!0);
    return 0;
}
---コード2---
#include "assert.h"
int main(int argc, char* argv[])
{
    assert(0);
    return 0;
}

---結果---
1:何も表示されない
2:アサート発生
0738737NGNG
×376
○736
誤爆失礼。

>>736
確かめてみたけどバグってないよ。
0739デフォルトの名無しさんNGNG
普通は「バグってるぞー」と言うやつが
コードを示すんだけどな。
バグって無いことを証明することは不可能なんだから。
07407誌のプログラマーNGNG
VisualC++6.0でインターネット上からのデータを取得するにはどうすればよいのでしょうか?
HTMLファイルなど・・・。
0741デフォルトの名無しさんNGNG
728は氏んだか?
恥かいたからって小学校に乱入すんなよ。
0742デフォルトの名無しさんNGNG
>>740
ソケット使えば?
0743デフォルトの名無しさんNGNG
質問です。
クラスのメソッドとして用意したウィンドウプロシージャを
lpfnWndProcに設定する際のコードは
どのように書けばいいのでしょうか?

このメソッドを、
LRESULT CALLBACK Foo::WinProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);

Fooコンストラクタの中で、
こう設定するとき、なぜか型が合わなくてエラーになってしまう
WNDCLASSEX klass;
klass.lpfnWndProc = (WNDPROC)WinProc;
0744デフォルトの名無しさんNGNG
>>728
いいことを教えてやろう。
次のコードで、foo()の戻り値が0以外だと、bar()は呼ばれないのだ。

int main()
{
    foo() || bar();
    return 0;
}
0745デフォルトの名無しさんNGNG
>>743
どうしてもクラスのメソッドにしたかったら、staticメンバにしろ。
class Foo{
public:
    static LRESULT CALLBACK WinProc(...
};
0746743NGNG
>>745
ありがとう。staticにしてみたらエラーが出なくなりました。

が、
'Foo::m_bar': スタティックメンバ関数内の不正なデータメンバへの参照です
というエラーが沢山出てきて鬱だ。

普通、ウィンドウプロシージャはクラスの
メソッドにしないほうがいいのでしょうか?
0747デフォルトの名無しさんNGNG
>>746
もちろんstaticメンバからのメンバ参照はできないので、この場合だと
コンストラクタでウィンドウプロシージャを設定する際に何らかの方法でthis
ポインタを渡す必要がある。
クラスメンバにするかどうかは個人的にはどうでもいいと思うけど、
ウィンドウプロシージャからメンバをアクセスするならやっぱりthisポインタ
は渡さなきゃいけないんで、手間は同じだと思うよ。
0748デフォルトの名無しさんNGNG
>>728
18分後のレスの時点で気付いていれば・・・
今ごろ全assertの評価式を置換中か(w

>>744
>次のコードで、foo()の戻り値が0以外だと、bar()は呼ばれないのだ。

× 0以外
○ 0でなければ(非0であれば)

細かい事だが
0749740NGNG
>>742
使い方を教えてください
0750728 != (732 == 736)NGNG
激しく勘違いしてました。
assertする条件逆でした。

みなさん、親切にどうもでした。
0751728 != (732 == 736)NGNG
>>748
まったくお恥ずかしい。
オオボケかましました。

お騒がせして申し訳ない(^^;
0752デフォルトの名無しさんNGNG
>>728
おまえ偽者だろ
0753この業界から逃出した男NGNG
>>743
http://www.nt.sakura.ne.jp/~miwaki/progtips/window/wndbase.shtml
ここのページ見てごらん。
やり方が書いてある。
0754      NGNG
すいません、
プロパティーシートに置いたラジオボタンの位置の値を
コントロールからの値で初期化し、ラジオボタンが変化したら
そのインデックスをまたコントロールに戻したいのですが、
どうすればいいのでしょう?
0755743NGNG
>>747
メソッドではないプロシージャ関数を予め Foo のコンストラクタに渡して
得られたインスタンスを、そのプロシージャ関数の中で使って、
Fooのメソッドのプロシージャ相当を呼び出す。
というややこしいスパゲッティな方法を思いついてとりあえずうまくいきました。

>>753
ありがとうございます。
まさに知りたかったエレガントなやり方が載ってるのでそっちを参考にしてみます。
0756デフォルトの名無しさんNGNG
タスクバー内のボタンにそのプログラムのアイコンを表示したい場合ってどうすればいいのでしょうか?
WS_SYSMENU フラグを追加すれば、WNDCLASSに指定したアイコンがタスクバーに書かれることは解ったんですが、
これを設定してしまうと他の部分で不具合が出てしまいました。
なるべく、これを利用しない方法があるといいんですが。

※WS_SYSMENU を設定しなくてもAlt+Tabメニューでは指定したアイコンが表示されますが、
下のタスクバーでは表示されてくれません。
0757デフォルトの名無しさんNGNG
BITMAPINFOHEADER構造体の中のターゲットデバイスのプレーン数って
何なんですか?
0758デフォルトの名無しさんNGNG
>756
左上のアイコンはコントロールボックス(システムメニュー)という。
これを付けるか付けないかがWS_SYSMENU
オーバーラップウィンドウ等はこれが必ず含まれる。
ここにアプリケーションアイコンが使われているだけで、特別にアイコンを出しているわけではありません。
つまり WS_SYSMENU を使わずアイコンを出している状態というのは通常あり得ません。
下のタスクバー?
・Windowsのタスクメニューバー
・ステータスバー
意味がよくわかりませんが指定のアプリケーションアイコンが出されているだけだと思われます。
というか、この質問だとたぶんみんなに怒られます。
0759デフォルトの名無しさんNGNG
>757
biPlanes =1以外使ったこと無し。
biBitCount が1プレーンあたりのビットカウントとなっているので
カラービット数=biBitCount/biPlanes
ということで、2ドットずつカラー指定するデバイスとかが奇跡的に存在したら使用するんとちゃいますか。
超大昔のパソコンにそんなのもあったような気が。
0760デフォルトの名無しさんNGNG
ちと>>743や>>753とも絡むのですが、リソースを参照し、ダイアログ上の
全てのコントロールも含めた形で、ダイアログボックスをCreateWindowEXで
作成する方法ってあるのでしょうか?

FindResourceやらLoadResourceやら使って、ダイアログリソース情報を
取り出すまでは出来たのですが、そのダイアログ上にある他の
リソースの取得方法が分からないのです。

要するにダイアログで>>753をやりたいのですが…
0761デフォルトの名無しさんNGNG
たまに耳にするんですがVCLってなんですか?
0762デフォルトの名無しさんNGNG
>>759
ハード的にR,G,Bのそれぞれのメモリが独立してる場合に使うもんだと思うぞ。
9801のGDCとかEGCみたいな。AGDCなんてのもあったか。

>2ドットずつカラー指定

これは普通に存在するだろ。YCbCrをネイティブで実装してたり。
普通は輝度:色差X:色差Yは4:2:2だから32bitをY:16bit/Cb:8bit/Cr:8bitで
分けてたりとか。
MSX2+の自然画モードなんかは4:1:1だったから、カラー指定は実質4ドット
ずつだった。
0763デフォルトの名無しさんNGNG
>>761
どこで耳にしたんですか?
0764デフォルトの名無しさんNGNG
>>760
つまりこんなのを読み込んで直接作るってことっすか?
gDir.rc---------------------------------------------
〜
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "バージョン情報 gDir"
FONT 9, "MS Pゴシック"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "gDir Version 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "Copyright (C) 1900",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP
END
〜
----------------------------------------------------

切れるちゃうから次へ
0765764つづきNGNG
>>760
ダイアログの場合は CreateDialogIndirect() というのを使って
DLGTEMPLATE というムチャクチャな構造体をちまちま使ってつくるようになってます。
ウィンドウプロシージャの指定だけなら753と同様の方法でよいと思われますが。
CDialog は CWnd の派生クラスなので。
ちょっとやりたいことが不明。
0766760NGNG
>>765
レスどうもです。MFCを使わずに=Aが前提でして=c言い忘れててbキいません。
DLGTEMPLATEの情報までは取得できるのですが、そこから先、cdit数分の
ダイアログボックス上アイテムを取得する方法が分からず困ってます。

ヘッダ読むと_DialogSplitHelperとかいう、APIには無い裏技みたいなの
使ってるんですよね。ここで詰まってます。どうしたものやら…。
0767デフォルトの名無しさんNGNG
sageてしまった
0768デフォルトの名無しさんNGNG
>>766
もしかするとATLがらみっすか?それだと辛い。
ま、いーとしてこんなのが出てきました。
やったこと無いんでどーだかわかりませんが
(hDialogTemplate は LoadResource()から取得)
LPCDLGTEMPLATE lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);
BOOL bResult = CreateIndirect(lpDialogTemplate, pParentWnd, NULL, hInst);
UnlockResource(hDialogTemplate);
0769756NGNG
WNDCLASS は WS_POPUP のみ指定してあります。
この場合だと、タスクバーには
[ApplicationTitle]
とアイコンが無い形で表示されますが、これを
[■ApplicationTitle]
のように表示したいのです。(アプリのキャプションがApplicationTitle、■はアイコンです。)

フルスクリーンのアプリで、WS_SYSMENUを付加してしまうと、
フルスクリーンに切り替わった瞬間に見苦しいウィンドウの枠が表示されたり、
(条件は良く解らないのですが、フルスクリーンなのに)枠をドラッグできたりしてしまいます。

>>758
結論としてはWS_SYSMENUが無い場合、タスクバーの表示を
[■ApplicationTitle]
のようにすることは出来ないということでしょうか?

ちなみにタスクバーとは
・Windowsのタスクメニューバー
として書かせていただきました。
0770デフォルトの名無しさんNGNG
>>769
そうゆうことだと思っといて下さい。
ウィンドウ枠の不穏な動きは多分 WS_CAPTION を指定していないからだと思います。
WS_BORDER も指定されていないとのっぺらぼーなウィンドウができますが、WM_NCPAINT がコーディングされていないと、気分でキャプションが出たり消えたりします。
標準的には WS_OVERLAPPED か WS_POPUPWINDOW(前述のWS_S〜とWS_B〜とWS_C〜の複合版)あたりがいいと思います。
あとは思考錯誤。
0771訂正NGNG
×WS_POPUPWINDOW(前述のWS_S〜とWS_B〜とWS_C〜の複合版)
○WS_POPUPWINDOW(前述のWS_S〜とWS_B〜とWS_P〜の複合版)
0772769NGNG
>>770
ありがとうございます。
実験してみます。
0773デフォルトの名無しさんNGNG
VC6でビルドした実行ファイルをエディタで開いてみたら、
なぜか以前見たウェブのHTMLファイルの一部が紛れ込んでいた。
何度リビルドしても必ず削除したHTMLファイルの一部が紛れ込んでしまう。
VC6ってビルドするときにわざわざFATを無視したディスクの内容を連結す
る機能でもあるの?
0774名無しさんNGNG
>>773
あるんじゃないの?
1バイトでも一部だし。
0775デフォルトの名無しさんNGNG
ATLを勉強したいのですが何かいい本、ホームページなどが
あったら教えてください。
0776名無しさんNGNG
>>773
俺もその症状あったよ。
自分で作ったexeファイルの中に2chのログのデータが入ってたのは笑った。
0777RIP_MAPIRONGNG
>>775
ATL COM プログラミング SE

他にもATL&COMを冠した本があるからチェックしてもよいかも。
そつなく広範囲を網羅しているみたいだからこれを選択した。VC++
でのプロジェクトの作り方&解説が親切で気に入っている。
 あとは、SDKのSamplesは結構勉強になる。
0778775NGNG
>>777
ありがとうございます
早速購入してみます
0779デフォルトの名無しさんNGNG
SendMessageを使ったときに送ったメッセージが現在の処理よりも
優先されると考えていいのでしょうか、だめなのでしょうか?
例外はあるのでしょうか?
0780デフォルトの名無しさんNGNG
>>779
「優先される」という言葉が意味不明気味だけど、同じスレッドなら、
WindowProc への関数コールみたいに処理される。別スレッド(プロセス)
だと先方のメッセージキューに積まれて、処理されるまで呼び出し側には
帰ってこない。
0781779NGNG
>>780
返答アリガトウございます。どこかの掲示板で、中にはSendMessage
で送られたメッセージが現在の処理よりも先に処理されないものが
あると書いてあったような気がしたので聞いてみました。
0782デフォルトの名無しさんNGNG
VisualC++6のgetchって、日本語入力対応してないみたいなんですけど、
入力させる方法ってありますか?
コンソールから"あ"を入力させようとすると、
"@a"になってしまいます。
@はALT+漢字
aはあと入力した時。
(打鍵したキーの文字がそのまま入る)
0783デフォルトの名無しさんNGNG
とりあえず何を言っているのかよくわからない。
getchって元々日本語云々で使用する関数では無いぞ
0784783NGNG
>>784
要はコンソールからバッファリングをせずに入力させたいんです。
例えば、getc使うと行単位になってしまうでしょ?
(tab打鍵で入力文字補完とかさせたいんで。)
0785783NGNG
ちなみにDOSコンパイラでやるとなんの問題もありません。
0786783NGNG
テスト用のソース載せます。
#include <stdio.h>
#include <conio.h>
int main() {
  int c;
  while ((c = getch()) != 0x1b) {
    printf("%x", c);
    putch(c);
  }
  return 0;
}
0787782NGNG
まちがえた・・。
わたしは783じゃなくて782です
0788デフォルトの名無しさんNGNG
>>782
DOS と Windows の PC側からのFEPのとらえ方の差です。
0789782NGNG
>>788
ですので、コンソールからバッファリングをせずに、
漢字入力させる方法がわかればいいんですが。
0790デフォルトの名無しさんNGNG
getchって、キーが押されてないときは
「押されてない」って値ですぐに返って
きたんじゃなかったかな。
786のコードだと、そういういらない値まで…

というところから、788氏の言うことに続く。
0791782NGNG
>>790
べつにgetchにこだわっているわけではありません。
同様の動作が行なえれば良いので。
(789は、その辺を含ませた発言だったのですが)
0792デフォルトの名無しさんNGNG
786のコードはWin2000 + Atok14で、漢字入れてもきちんと動いたぞ。
VCじゃなくて、Win9Xが腐ってるんじゃねーのか?
0793792NGNG
>>792
その様です。
どうすればいいんでしょう。

これも関係ありそうです。
http://www.microsoft.com/japan/support/kb/articles/J024/2/11.htm
(この説明、良く分からないんですが・・・。)
0794デフォルトの名無しさんNGNG
>>793

#include <stdio.h>
#include <conio.h>

#define ismbblead(a) (0x81<=a&&a<= 0x9F)||(0xE0<=a&&a<=0xFC)

int main() {
char c[3];
c[3]='\0';
while ((c[0] = getch()) != 0x1b) {
if(!ismbblead(c[0])
{
printf("%x", c[0]);
putch(c[0]);
}
else
{
c[1] = getch();
printf("%x%x", c[0],c[1]);
puts(c);
}

return 0;
}

じゃあ、納得いかないってこと?
0795デフォルトの名無しさんNGNG
>>793
日本語がおかしいと思ったときは、英語を確認しましょう。
http://support.microsoft.com/support/kb/articles/Q146/4/48.asp
>are unable to receive DBCS characters composed by IMEs.
>DBCS 文字を受け取ることができます。
おいおい‥‥どこのヴァカか訳しやがったんだ?
要するに、Win9Xでは仮名漢が16bitだからどうしょうもない、って事。
>This behavior is by design
で、それは仕様とか言い張るし。
0796デフォルトの名無しさんNGNG
void MyView::OnPrepareDC(CDC *pDC, CPrintInfo *pInfo)
{
if(pInfo && pDC->IsPrinting()) {
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),
pDC->GetDeviceCaps(LOGPIXELSY));
pDC->OffsetWindowOrg(0, 0);
pDC->SetWindowExt(80, 80);

まぁ、こんな感じで処理を行っているんだけど、
プレビュー時は思った通りに拡大されるんだけど、印刷がなぜかできません。
上記のコードをコメントにすると出るんだけど・・・?
 どうすれば、拡大印刷ができるのでしょうか?
0797デフォルトの名無しさんNGNG
void MyView::OnPrepareDC(CDC *pDC, CPrintInfo *pInfo)
{
if(pInfo && pDC->IsPrinting()) {
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),
pDC->GetDeviceCaps(LOGPIXELSY));
pDC->OffsetWindowOrg(0, 0);
pDC->SetWindowExt(80, 80);

まぁ、こんな感じで処理を行っているんだけど、
プレビュー時は思った通りに拡大されるんだけど、印刷がなぜかできません。
上記のコードをコメントにすると出るんだけど・・・?
 どうすれば、拡大印刷ができるのでしょうか?
0798デフォルトの名無しさんNGNG
ツリービューでエクスプローラのようにファイルの階層を表示させたのですが、
ツリーを展開させると多少ちらつきがはいります。本物のエクスプローラでツリーを
展開させると、展開した部分より上は再描画していないようで、下の部分は
スクロールのときによく使われるScrollWindowで下にずらしたような感じに
思えました。CTreeViewクラスなどをつかって同じようなことはできるのでしょうか?
あるのでしたらヒントだけでもください。
またはSDKのように一からツリービューを使って、このような処理をできるのでしたら
教えてください。
0799798NGNG
まじでだれか教えてください。
お願いします
0800デフォルトの名無しさんNGNG
>>799
やるとすれば OwnerDraw じゃない?
普通に使っても、そんなにチラチラするとは思えないんだけど…
なにか余計な Redraw 掛かってない?
0801792NGNG
>>794
おそらくそのコードがうまく働くのはNTか2000ですよね?
9xだとIMEの変換結果がgetchに渡ってこないので、
ismbbleadの漢字判定まで辿り着けないんです。

いろいろコンソール系のAPIを試した結果、
(最初に)SetConsoleMode(hstdin, ENABLE_PROCESSED_INPUT|ENABLE_MOUSE_INPUT);
↓
ReadConsole(hstdin, ch, 1, &len, 0)
こういう風にReadConsoleを使うと漢字を取り出せる事までは
わかったんですが、そうするとこんどはカーソルキーや
HomeEndDelなどキーが無効になってしまいました。

訳が分かりません。泣きたくなってきました。
(なんでgetchごときにこんなに手間がかかるのでしょうか。)
0802798NGNG
>>800
たいしてちらつきはないのですがエクスプローラーのまったく
ちらつかないのにすごいと思って聞いてみました。
0803798NGNG
>>800
たいしてちらつきはないのですがエクスプローラーのまったく
ちらつかないのにすごいと思って聞いてみました。
0804デフォルトの名無しさん NGNG
VisualC++6.0なんですが、
1)和が一定(ここでは4)となる自然数の列を全て列挙するプログラムを教え
てください。
2)再帰を用いたプログラムと、再帰を用いないプログラムの比較・検討を行っ
てください。
1番は
#include<stdio.h>

void abs_sum( int n, int w);
int main()
{
int w =2,n =3;
abs_sum( n, w);
return 0;
}
void abs_sum( int n, int w)
{
void in_abs_sum( int total_length, int n, int w);
in_abs_sum( n,0,w);
}
void in_abs_sum( int total_length, int pos, int w)
{
int i, j, called =0;
if ( pos >= total_length ){
putchar( '\n');
return;
}
for ( i =0;i <= w;++i){
if ( called++ ){
for ( j =0;j < pos;++j){
printf(" ");
}
}
printf("%2d",i);

in_abs_sum( total_length, pos +1,w-i);
}
}
これを参考にせよとのことなんですが。よくわかりません。
教えてください。
0805デフォルトの名無しさんNGNG
>>803
う〜ん、変更かからないはずのリージョンを
有効化してやるとか?
でも、普通かかってそうだけど・・・
0806デフォルトの名無しさんNGNG
>>804
タダでボクチンの課題を片付けてくれる人募集ですか。
いい根性だ。
0807デフォルトの名無しさんNGNG
VisualC++って末尾再帰展開してくれんの?
0808デフォルトの名無しさんNGNG
>>804
比較検討っていわれてもなー
しかもVC++ってゆうよりはただのCじゃん。
MFCとかもつかっていいの?
0809デフォルトの名無しさんNGNG
>>803
エクスプローラのあれは...
0810デフォルトの名無しさんNGNG
>>809
何?
0811804NGNG
>>808
比較検討ってゆーのは別に気にしなくてもいいです。
MFCとかはあんま使わない方がいいと思います。
0812デフォルトの名無しさんNGNG
>MFCとかはあんま使わない方がいいと思います。

何故このスレで?
0813デフォルトの名無しさんNGNG
えっと、↓なんですが、
SendMessage(hEdit,EM_EXLIMITTEXT,0,10000000);
何故かうまく機能しません。

EM_EXLIMITTEXT訳わかりません。
容量の制限とっぱらいたいんですが・・・。
誰かわかる方がいらっしゃれば教えていただけませんでしょうか。
0814デフォルトの名無しさんNGNG
通常WM_NOTIFYは親ウインドウに通知されますが、
これを自ウインドウで検知する方法はありますか?

それもフックやサブクラス化「以外」の方法でお願いします
0815デフォルトの名無しさんNGNG
親のプロシージャで自ウインドウにSendMessageすればいいだけじゃないのか?
(なんでサブクラスを避けるのかは謎だが)
0816デフォルトの名無しさんNGNG
>>813
NT以外だと制限はなくならないんじゃなかった?
0817デフォルトの名無しさんNGNG
>>813
EDITコントロールの仕様。
NT/2000以外では64kbまでしか扱えない。
0818デフォルトの名無しさんNGNG
>>813
リッチエディットを使いましょう
0819デフォルトの名無しさんNGNG
BOOL a = TRUE;

a = !a; // (a == FALSE)
a = !a; // (a == TRUE)

こういう使いかたしてもいいのでしょうか
0820デフォルトの名無しさんNGNG
>>819
そういう使いかたしてもいけない理由がありません。
0821819NGNG
>>820
a = 0;
a = !a

で a == TRUE になる保証はあるのでしょうか?
0822デフォルトの名無しさんNGNG
#define TRUE 0
ミタイナマヌケナヘッダダッタラドウスル?
0823デフォルトの名無しさんNGNG
#define TRUE 0
#define FALSE 0

とか、

#define TRUE 1
#define FALSE 2

のような、キチガイじみたヘッダでなければ大丈夫。
それがたとえ、

#define TRUE 0
#define FALSE 1

であっても、>>819の使い方には問題ない。
0824819NGNG
#define TRUE 1
#define FALSE 0
のときに
a = FALSE;
a = !a;
にすると a == 1 になっているのでしょうか?
0825デフォルトの名無しさんNGNG
非ゼロじゃないの
0826デフォルトの名無しさんNGNG
>>821
Boolean の値の比較はしない方がいい。
そのまま、もしくは論理否定の条件式だけ。
0827デフォルトの名無しさんNGNG
>>819
厳密にtrueとfalseしかとらないbool型だとして、
>>824の等式を実行すると、1がbool型として計算され、
a==trueの評価がされて、結果として真が返ることになると思う。
この場合はa==1の式は真になるけどaが1かどうかはわかんないってことに。

ただVCのBOOL型ってどうも胡散臭いんで、どうなるんだろうね。
0828デフォルトの名無しさんNGNG
>>827
デムパ君ですか?
>>824のは等式でなくて代入文に見えますが。
うさんくさいとか言う前にヘッダ見たら?
0829デフォルトの名無しさんNGNG
>にすると a == 1 になっているのでしょうか?

>>824の聞きたいことはこれだろ?
俺には等式に見えるが。
0830デフォルトの名無しさんNGNG
>>829
だからヘッダ見ろって。
0831デフォルトの名無しさんNGNG
>>829
だからヘッダ見ろって。
0832デフォルトの名無しさんNGNG
>>831
だからヘッダ見ろって。
0833デフォルトの名無しさんNGNG
>>833
だからヘッダ見ろって。
0834デフォルトの名無しさんNGNG
>>835
だからヘッダ見ろって。
0835名無しさんNGNG
http://dasaji.postpetclub.nu/
に有るような、オリジナルフォントを作成したいのですが
VCでどのように作るのでしょうか?
0836デフォルトの名無しさんNGNG
>>830
だからヘッダ見ろって。
0837デフォルトの名無しさんNGNG
>>835
フォントエディタを書く
0838名無しさんNGNG
スレッド個別にたてちゃうぞ!?
0839デフォルトの名無しさんNGNG
Win2kマシンにVCをインストールしてて、Win9Xマシンでもデバッグしたいとき、
もう一個買ってインストールしなきゃ駄目ですか?

それともいちいちアンインストールしますか?
0840デフォルトの名無しさんNGNG
>>839
同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0841デフォルトの名無しさんNGNG
>>839
同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0842デフォルトの名無しさんNGNG
>>839
同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0843デフォルトの名無しさんNGNG
>>839
同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0844デフォルトの名無しさんNGNG
>>843
ヘルプには一台に付き1セット購入が原則だって・・・・・

一台にOS二個いれろってことかぁ・・・
0845782NGNG
>>801
の方法でカーソルキーとかも有効にする方法って、誰も知りませんか?
(>>801に至るまでの経緯 >>782-795)
0846814NGNG
>>815
親側(というか親クラス)に「子ウインドウにNOTIFYしなければならない」
という縛りを付与したくないのです。一日調べてましたがやはり
無いみたいです。残念。

関係ないですけど、私は一台にWin2kとWin98を入れ、VC++6を
両方のOSにて、全く同じフォルダ(CommonFilesはさすがに別)に
インストールしてますが、今のところ(6ヶ月間)不具合は出てません。
容量節約になるしやってみてはいかがでしょ。
0847デフォルトの名無しさんNGNG
>>839
リモートでデバッグしてみたら?
0848813NGNG
みなさんありがとうございました。
0849デフォルトの名無しさんNGNG
ag
0850デフォルトの名無しさんNGNG
CToolBarを継承するにはどうすればいいのでしょうか?
クラスウィザードは使えないのでしょうか?
0851デフォルトの名無しさんNGNG
    ┏━━━ / |━━━━━┓
    ┗┳┳━ |_| ━━━┳┳┛
      ┃┃ /  ヽ     ┃┃
    ┏┻┻ |======| ━━┻┻┓
    ┗┳┳ ヽ__ ¶_ ノ ━━┳┳┛
      ┃┃ (/)     ┃┃
      ┃┃ (/)     ┃┃
    凸┃┃ (/)     ┃┃凸
    Ш┃┃ (/)     ┃┃Ш
    .|| ┃┃ (/)     ┃┃.||
  ∧_∧   (/) ∧_∧  ∧ ∧
  ( ・∀・)  (/)(´∀` )  (゚Д゚ )  MFC 氏にますように
  (つ  つミ (/)(⊃⊂ ) ⊂  ⊃
  |_|_|_�I(/)_|_|_|__|  |
  /////ノ,,,,,,ヽ ////||  |〜
////////////  |∪∪
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
|        奉  納        |
0852デフォルトの名無しさんNGNG
>>846
MFC 使ってるなら REFLECT で出来るけど。クラスウィザードで
頭に = 付で出てくるアレね。
0853デフォルトの名無しさんNGNG
MFC超初心者です。
MFCのキー入力はわかるのですが、ウェイトの設定方法がよくわからないです。
どなたかスロットゲームのソースを頂けないでしょうか?
スロットゲームのソースを見れば本当によく理解でき、勉強できると思うんです。
本当にめんどくさいこと書いて恐縮なのですが、どうかよろしくお願いします。
0854デフォルトの名無しさんNGNG
>>851
かわいそうにMFCが使えないんだね
あんに簡単なのに
0855デフォルトの名無しさんNGNG
>>851
おいおい煽るなよ・・・どうせプログラマーなんて
10年後には必要なくなるのに・・・
0856851じゃないけどNGNG
>>855
必要なくなるわけないだろ!
0857デフォルトの名無しさんNGNG
>>853
ここに逝けばわかるぞ(藁
http://piza.2ch.net/test/read.cgi?bbs=tech&key=992508442
0858デフォルトの名無しさんNGNG
>>855
まったく無くなるとは思わないけど、確実に開発から
保守、メンテナンスへと仕事は移っていくと思う。
0859デフォルトの名無しさんNGNG
  ∧ ∧ プーッ., ;:
 (,,゚ 3..゚)・:;∵。
 (つ目);:・ ;::;
0860デフォルトの名無しさんNGNG
CSocket使おうと思って、ダイアログベースのアプリ作ってるけど、
OnInitDialogでCreateしてやってもエラーが起きます。

で、エラー内容確認しようと
if(m_Sock.Create(port)!=0)
{
 err=GetLastError();
}
としてもerrには0しか入りません。


なんででしょ?
0861デフォルトの名無しさんNGNG
AfxSocketInitしてるかい?
0862デフォルトの名無しさんNGNG
>>860
エラーが起きてないから。
0863デフォルトの名無しさんNGNG
>>862
ごめん,そのとおりでした(^^;

で、続きとして、

データをRecieveするとき、準備すべきバッファのサイズって、
どうやったら分かりますか??
0864デフォルトの名無しさんNGNG
Afxってどういう意味ですか?
0865デフォルトの名無しさんNGNG
Afxってどういう意味ですか?
0866デフォルトの名無しさんNGNG
>>863
DATAGRAM なら下位レイヤが何かにもよるけど、上位レイヤはわかって
るんだろうから、そのプロトコルで送られてくる最大サイズ。

STREAM なら、バッファ長は自分で決める。というか、この質問が出る
ってことは、ソケットライブラリの使い方に関する基本があやふやっぽい
ので、漏れが(質問に答えて)これ以上面倒なことになる前に winsock FAQ
とか全部読むと良いと思う。
0867デフォルトの名無しさんNGNG
>>866
STREAMで使ってます。
確かに今日初めて使いましたが(^^;

とりあえず、今まで失敗してたのはプログラムミスだったので
解決しました。どもどもです。
0868デフォルトの名無しさんNGNG
C言語はおぼえたのでVCをやりたいのですがまず何から始めればいいの
でしょうか?
0869デフォルトの名無しさんNGNG
C言語はおぼえたのでVCをやりたいのですがまず何から始めればいいの
でしょうか?
0870デフォルトの名無しさんNGNG
C言語はおぼえたのでVCをやりたいのですがまず何から始めればいいの
でしょうか?
0871デフォルトの名無しさんNGNG
C言語はおぼえたのでVCをやりたいのですがまず何から始めればいいの
でしょうか?
0872デフォルトの名無しさんNGNG
>>868-871
MessageBox("Hello. World.");
0873デフォルトの名無しさんNGNG
その他の引数は自分で調べろな。
0874デフォルトの名無しさんNGNG
HDDがクラッシュしてVC++6.0を、再インストールせねばならなくなってしまいました。
このとき、sp1も、一緒に逝ってしまわれました。
sp3なら素のVC++6.0に直接インストールできそうなんですが、これって問題ありませんか?
回線細いのでspのダウンロードはキツイです。
0875デフォルトの名無しさんNGNG
>>874
雑誌についているサービスパックをインストールすべし。
サービスパック == バグ直し
だからできるだけ新しいのを入れたほうがよし。
0876デフォルトの名無しさんNGNG
>>874
雑誌についているサービスパックをインストールすべし。
サービスパック == バグ直し
だからできるだけ新しいのを入れたほうがよし。
0877875NGNG
sp3だけは手元にあるのですが、
sp1->sp2の時はたしかsp1がインストールされていないと、
sp2をインストールできなかったと記憶しています。

sp3を素の状態のVC++6.0に入れようとしても警告やエラーが
でなかったので、なんか気になってしまって。
クラッシュ直後でビビリ入ってます・・・
0878デフォルトの名無しさんNGNG
sp4って無かったっけ?
0879デフォルトの名無しさんNGNG
今はSP5だな。
0880875NGNG
>>877
おまえ誰やねん?
sp3,sp4,sp5ならもんだいなかったぞよ
0881デフォルトの名無しさんNGNG
SDIでDOC/VIEWで作ってます。
ファイルオープンダイアログがWin2000でも以前の形式のダイアログが
出るんですが、これをWin2000形式のダイアログにするにはどうしたら
イイんでしょうか?
0882デフォルトの名無しさんNGNG
VC++でファイルを2つに分けてビルドしたいのですが
どうしたらよいのですか?
0883デフォルトの名無しさんNGNG
>>882
dos上でという意味?
0884デフォルトの名無しさんNGNG
>>882
dos上でという意味?
0885デフォルトの名無しさんNGNG
>>882
cl /Feoutput.exe file1.c file2.c
0886883,884NGNG
>>885
dos上でなのか?
0887デフォルトの名無しさんNGNG
コンソール窓って言えや
0888デフォルトの名無しさんNGNG
>>881
CFileDialog は OPENFILENAMEのフックが固定定義されておりそのせいだと思われます。
Win32APIで GetOpenFileName() でデフォルト表示させりゃいいと思われます。(今2000でないので試せないが)
0889デフォルトの名無しさんNGNG
>>883
いや、DOS上とかじゃなくて
extern宣言やってもエラーになるから
VCの使い方間違ってるのかと思って聞いてみました。
0890883NGNG
>>889
多分使い方が間違っていると思われり
プロジェクトを作ってそのプロジェクトに
ファイルを追加していますか?
0891uuuNGNG
自分は、簡単なプログラムなら、VC++で組んだことがあるので、
カシオペアA-51のソフトを自作してみたくなり、eMVT3.0のCD-ROMを取り寄せてみました。

そして、http://www.microsoft.com/japan/windowsce/cetools/downloads/hpcsdk.htm
から、mplatsdk.exeをダウンロードしてインストールしたのですが、
選択肢にCE2.0が出ません。

HPC2.0の開発をしているかた、どうか解決策を教えてください。
0892デフォルトの名無しさんNGNG
Windows CE Toolkit for Visual C++ 5.0または6.0 が必要なのでは?
0893デフォルトの名無しさんNGNG
Windows CE Toolkit for Visual C++ 5.0または6.0 が必要なのでは?
0894889NGNG
>>890
はい、追加してます。
コンパイルはできるのですが
リンクのところでエラーになります。
0895デフォルトの名無しさんNGNG
>>894
設定のリンク先に付け加えたの?
0896uuuNGNG
>>892-893
そうなんですか?
WinCEFANの情報ではeMVT3.0とmplantsdk.exeさえあればOKとあったのに…
0897895NGNG
>>889
エラー内容を書いてくれれば原因がわかると思うけど
0898デフォルトの名無しさんNGNG
http://piza.2ch.net/test/read.cgi?bbs=jisaku&key=977945208
参照せよ!
0899895NGNG
>>898
俺が教えて君だってのか
0900889NGNG
>>895
あ…
付け加えてなかったです。
0901デフォルトの名無しさんNGNG
あるデータをファイルに出力するプログラムなんですが、
unix上(gcc利用)でコンパイル・実行した時の結果と、
win上(vc++6利用)でコンパイル・実行した時の結果の大きさが
違うのです。

win -> 90024bytes(出力データのサイズ)
unix-> 90015bytes(出力データのサイズ)

正しいのは90015bytesの方です。
なぜサイズが異なるんでしょう?
解決策を教えてください ヽ(´Д`)ノ

--------------------------------------------出力部分のコード---------------------
〜略〜
void RTViewMgr::prnpgmhdr(void){
  cout << "P5 " << 2 * dotsize << " " << 2 * dotsize << " 255" << endl;
}

〜略〜
for(略){
  if(obj.rayhit(ray, &hit))
    cout << hit.intensity(lsrc, dIntensA);  // intensity()の返り値はu_char型
  else
    cout << static_cast<unsigned char>(0);
}
0902sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0903sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0904sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0905sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0906sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0907sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0908sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0909sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0910sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0911sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0912sageNGNG
a
a
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0913デフォルトの名無しさんNGNG
プログラマ板のage荒しがこっちにも来ましたか?
0914デフォルトの名無しさんNGNG
いさチビ女さん
そろそろ新しいスレに
0915デフォルトの名無しさんNGNG
任意のディレクトリ内の特定の拡張子を持つファイルの個数を数える
プログラムを作りたいんですが、いちばん簡単な方法は何でしょうか。
やっぱり、FindFirstとかFindNextとかで、検索するのがいちばん簡単?
ちなみに、サブフォルダ内は検索対象にしません。
0916デフォルトの名無しさんNGNG
>>915
おっぱいぼいん
0917915NGNG
>>916 はあ?
0918デフォルトの名無しさんNGNG
>>915
不可視のComboBoxを作って、CComboBox::Dir
0919915NGNG
>>918
ご回答ありがとうございます。

意味がよくわかりません。もう少し詳しくお願いします。
0920デフォルトの名無しさんNGNG
>>918
あぁ?CComboBox::DirをMSDNで調べろ。
0921デフォルトの名無しさんNGNG
VCだったら2ちゃんよりニュースの方がいいよ
真面目に困ってる人にはね
0922 NGNG
>915そだね。ツーカ分かってる方法があるならそれでやれよ
0923915NGNG
はい、すみません
0924デフォルトの名無しさんNGNG
16bitカラーモードではパレットを作る必要はないのでしょうか?
16bitカラーモードでは色はどのようになっているのでしょうか?
0925デフォルトの名無しさんNGNG
>>924 BITMAPINFO の bmiColors[0] 〜 bmiColors[2] に
RGB (BGRだっけ) のそれぞれのビットマスクが入ってる。
0926デフォルトの名無しさんNGNG
>>915
dir *.ext /b /s
を実行して、その結果の行数を数える。
0927デフォルトの名無しさんNGNG
>>926
ばかじゃないの、死ね。
本当に、ばかだな。頭悪いよ。はげ
0928デフォルトの名無しさんNGNG
↑も無教養に見える。
0929>926NGNG
wcがないとね
0930デフォルトの名無しさんNGNG
トイレ?
0931デフォルトの名無しさんNGNG
ビットマップのデータってどうやって保存するんですか?
0932デフォルトの名無しさんNGNG
>>930
……ネタにしては、つまらない。本当に知らないのなら http://unxutils.sourceforge.net/
行って下さい。
0933デフォルトの名無しさんNGNG
設定がハイカラー(16ビット)以上のときはビットマップを読み込んだとき
パレットはつくるひつようはないんでしょうか
0934なーNGNG
>933
パレットはいらないけど、マスクしなきゃいけないのでその分はbitmapinfoheaderの後につけてあげなくちゃいけないよ。
0935なーNGNG
ACCESSとかの mdbって2000になって だいぶかわったみたいなんだけど、
実際のところはどうなんでしょう?
前はセカンダリのスレッドからはアクセスしちゃだめとか、
あったけど、今もかわらずなのでしょうか?
というか、2000になっての変更点ってどういうのがあるんでしょう?
解説とかあるページがあったら、教えてくださいませ。
他力本願で申し訳ないのですが・・・
0936デフォルトの名無しさんNGNG
void *operator new(size_t size){
/*省略*/
}

void *operator new [](size_t size){
/*省略*/
}
void inithoge(long num){
char *p = new char[num]
}
■■■■■■■■■■■■■■■■■■■■■
このような時、new[]ではなくnewの方に飛んでしまうんですが、
これって仕様ですか?

VC++6.0
0937デフォルトの名無しさんNGNG
VC6ではnew[]演算子およびdelete[]演算子は定義されていません。
内部で勝手にnew/delete演算子に置き換えています。
0938936NGNG
>>937
ありがとうございます。
0939デフォルトの名無しさんNGNG
現在ダイアルアップでつながっている番号をこっそり変えたいのですが
ばれないようにやるいい方法はないでしょうか
0940>>939NGNG
NTTハクしてISPの電話番号かえさせるとか
おまえ物凄いこといってるな
0941デフォルトの名無しさんNGNG
初期化ファイルに対する操作についての質問です。
指定した初期化ファイル(.INI)で、特定のセクションを、セクション名毎削除するには
どうしたらよいのでしょうか?
WritePrivateProfileSectionで書き込みデータをNULLにしても、セクション名だけは残って
しまいます。
0942デフォルトの名無しさんNGNG
>>941
WritePrivateProfileString()を使え。
第2引数をNULLにするのぢゃ。
0943デフォルトの名無しさんNGNG
>>939
エロサイトでよくおとせる(おとさせられる)Q2のアレのことか?
0944941NGNG
>>942
ありがとう。成功しました。
0945939NGNG
>>943
そうです。
巡回ソフトに組み込んでおいてこっそり番号変えられないかと
0946いさましいチビの女NGNG
900を超えたので新スレッドを作りました。

http://piza.2ch.net/test/read.cgi?bbs=tech&key=993186053&ls=50
0947デフォルトの名無しさんNGNG
かちゅーしゃ用
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993186053
0948デフォルトの名無しさんNGNG
>>947
ありがたい、まじで
レス数が900を超えています。1000を超えると表示できなくなるよ。