トップページ⇒tech
1001コメント324KB

★初心者にVisual C++を教えるスレ★ Part14

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

  質問の仕方については次のページが大変参考になります。
  http://www.hyuki.com/writing/techask.html
  http://www.geocities.co.jp/Beautycare/4965/public/template.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

前スレ
★初心者にVisual C++を教えるスレ★ Part13
http://pc5.2ch.net/test/read.cgi/tech/1089011118/l50
0002デフォルトの名無しさんNGNG
// 過去スレ
Part13 http://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 http://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 http://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 http://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 http://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 http://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 http://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 http://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 http://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 http://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 http://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
※「いや〜、ごめんなさい」により、紛失の可能性

// 関連
■MFC相談室 mfc11.dll■
http://pc5.2ch.net/test/read.cgi/tech/1088084875/
Win32API質問箱 Build22
http://pc5.2ch.net/test/read.cgi/tech/1092524669/
鬱だ氏のう DirectX (Part 14)
http://pc5.2ch.net/test/read.cgi/tech/1088594869/
C++相談室 part34
http://pc5.2ch.net/test/read.cgi/tech/1092018643/
C/C++の宿題を片付け作戦指令 30代目
http://pc5.2ch.net/test/read.cgi/tech/1091954342/
0003デフォルトの名無しさんNGNG
// 外部リンク
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Google
http://www.google.co.jp/

//このスレの前身 VisualC++相談室 過去スレ
part 1 http://piza.2ch.net/tech/kako/970/970607517.html
part 2 http://piza.2ch.net/tech/kako/981/981630730.html
part 3 http://piza2.2ch.net/tech/kako/993/993186053.html
part 4 http://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 http://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 http://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 http://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 http://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 http://pc5.2ch.net/tech/kako/1036/10368/1036897197.html

0004デフォルトの名無しさんNGNG
>>1
市ね
0005デフォルトの名無しさんNGNG
>>1
乙
0006デフォルトの名無しさんNGNG
VC++6で.cppと.defファイルをDLLにコンパイルする方法を教えて下さい
0007デフォルトの名無しさんNGNG
>>6
意味不明
0008デフォルトの名無しさんNGNG
>>6
ウイザードでDLLのプロジェクトを作成する。
cppとdefを書き換える。
コンパイルする。
0009デフォルトの名無しさんNGNG
はじめまして

環境:Visual Studio 6

C++にある、setというコンポーネントを使おうとしてます。
勉強段階として、次のデータ型を
---
///データ型
typedef struct{
stringid;
stringname;
stringdetail;
} DATA;

template<typename DATA>
bool operator<(DATA const &a, DATA const &b){
return a.id < b.id;
};
---

以下のsetに次々と登録していきたいと考えています。
set<DATA> idlist;

が、次のようなエラーが出てしまいます。

error C2667: '<' : 2 個のオーバーロード関数があいまいで最適な変換ができません。 (新しい機能 ; ヘルプを参照)
error C2593: 'operator <' があいまいです。

idの部分を、intに変えた場合はうまくいきました。
なぜ、stringにするとダメなのでしょう…?
何かご存知の方がおられましたら、ご教授の程お願いいたします。
0010デフォルトの名無しさんNGNG
// これはいらないんじゃないか? → template<typename DATA>
bool operator<(DATA const &a, DATA const &b){
return a.id < b.id;
};

ってか、stringのあとにちゃんと空白を入れろと。
0011デフォルトの名無しさんNGNG
>>10さん

ありがとうございました。できました。
template宣言いらないのか…

空白をTABにしていたので、消えちゃいました;;
次から気をつけます(^^)ゞ
0012デフォルトの名無しさんNGNG
アプリケーション配布ライセンスって
Visual C++ 6.0 Professional Editionで作ったものって売っても問題ないの?教えてください
使用許諾書のを読んだけど、問題ないみたいが。
0013デフォルトの名無しさんNGNG
質問です。
ネット上で拾ったDLLモジュールのソースをコンパイルして使用したいのですが
VCTK2003+PSDKの環境で
VCTKの方のコンパイラを使用してます
cl /c AutoAcce.cpp
link /dll AutoAcce.cpp /DEF:AutoAcce.def
それで以下の結果に終わってしまいます。
何がいったい原因なんでしょうか?
   Creating library AutoAcce.lib and object AutoAcce.exp
AutoAcce.obj : error LNK2019: unresolved external symbol __imp__KillTimer@8 referenced in function "void __stdcall DefaultEquip(struct HWND__ *,unsigned int,unsigned int,unsigned long)" (?DefaultEquip@@YGXPAUHWND__@@IIK@Z)
AutoAcce.obj : error LNK2019: unresolved external symbol __imp__SetTimer@16 referenced in function "int __stdcall OnSend(unsigned char *,int)" (?OnSend@@YGHPAEH@Z)
AutoAcce.dll : fatal error LNK1120: 2 unresolved externals
0014デフォルトの名無しさんNGNG
よくわからないのですがKillTimerとSetTimerを他のLibから引っ張らないといけないのでしょうか?
0015デフォルトの名無しさんNGNG
稀にソフトウェアのバージョンアップ内容を見ると
・開発環境を VC++ 6.0 から VC++ .NET に移行した
と、開発環境の変更だけの更新内容を見かける事があるのですが
VC++ 6.0 から VC++ .NETへ移行することで
起動の早さ等、ユーザー側に何らかの影響を及ぼすのでしょうか?
VC++素人の質問ですみません、よろしくお願いします
0016デフォルトの名無しさんNGNG
dllのバージョンとか最適化とか
0017デフォルトの名無しさんNGNG
>>15
manegedで書き直した場合なら、実行にCLRランタイムが必要になるし
起動速度なんかも大分かわってくるんじゃないの?
0018デフォルトの名無しさんNGNG
VC++自体の質問なのですが、
http://www.amazon.co.jp/exec/obidos/ASIN/B00009PJOC/qid=1093782111/sr=1-2/ref=sr_1_10_2/249-3678490-8701153
対応OS:Win2000Sv/Win2000AdvSv/Win2000Profesl/WindowsXp Home/WindowsXp Pro/Win2003Sv STD/Win2003Sv
になってるのですがMe、98では使用不可でしょうか?
0019デフォルトの名無しさんNGNG
>>18
インストール出来ません
0020デフォルトの名無しさんNGNG
そんなぁ…orz
0021デフォルトの名無しさんNGNG
>>18
では「インストールできます」ってことにしておきますね
0022デフォルトの名無しさんNGNG
XP買いなはれ。
0023デフォルトの名無しさんNGNG
最近使ったファイルがデフォでコンパイルした場合表示されるのですが、
(MRU?)
そのファイル名を取得できる方法をお教えください。
0024デフォルトの名無しさんNGNG
>>23
VC6.0付属MFCには、CWinAppのprotectedメンバにm_pRecentFileListがある。
MSDNには載ってないけど多分これ使えばいいんじゃね?
0025デフォルトの名無しさんNGNG
>>23
レジストリから漁ったりなんかしちゃったりして
0026デフォルトの名無しさんNGNG
コマンドプロンプトよりユーザID、パスワードを入力させ、
RADIUSサーバにRADIUSプロトコルで送信し、
ユーザの認証を行うRADISUクライアント用のAPをVCで作ろうと思っています。
Active DirectoryでRADIUSを叩けるという話を聞きまして、
調べてみたのですが、ADSIでActive Directoryにアクセスするという所までわかったのですが、
具体的にどのようなことをすれば良いのかわかりませんでした。

そこでみなさんの知恵をお借りしたいのですが、ご存知無いでしょうか?
参考になるサイト、書籍やアドバイスがございましたら、ご教授くださいませ。
宜しくお願い致します。

開発環境は
Windows2000pro
Visual Studio.NET
です。
002715NGNG
>>16
>>17
レスありがとうございます
0028デフォルトの名無しさんNGNG
>>12
俺の脳内ソースだと、ProはOKなはず
0029デフォルトの名無しさんNGNG
VC6,0でリソースエディタにて、画面を作成しました。

その画面には、[OK]ボタンがデフォルトボタンになってます。
また、リストビューが表示されています。

このリストビューを、サブクラス化してエンターキーを押した場合に、
ダイアログを出そうと考えています。

ところが、エンターを押すとデフォルトボタンの[OK]が実行されてしまいます…
どうしたらいいでしょうか…

試しに、スペースキーを入れてみましたが、スペースはうまくいきます。

サブクラス化した一部です。


switch(message) {
  case WM_KEYDOWN:
    switch(wParam){
      case VK_RETURN:
        MessageBox(hWnd, "えんたー", NULL, MB_OK);
        break;

      case VK_SPACE:
        MessageBox(hWnd, "すぺいす", NULL, MB_OK);
        break;
 :
 :
0030デフォルトの名無しさんNGNG
>>29
OnOK()
で
//CDialog::OnOK();
とコメントアウトする

適当な処理をそこに足す
0031デフォルトの名無しさんNGNG
SDKの質問にMFCで答えるスレはここですか
0032デフォルトの名無しさんNGNG
#include<stdio.h>
#include<stdlib.h>

int main(void){
FILE *fp;
if((fp=fopen("sintai.dat","w"))==NULL){
printf("File not open\n");
exit(1);
}

int i;
struct sintai {
char *name;
int height,weight;
};
static struct sintai a[]={
{"nagata" ,180, 85},
{"nisimura" ,185, 95},
{"nakanisi" ,175, 80},
{NULL,0,0}
};
for (i=0 ; a[i].name != NULL; i++){
printf("%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
fprintf(fp,"%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
}
return 0 ;
}

これはstruct sintai a[]を初期化してsintai.datへ書き出すプログラムですが

これの逆をする場合、つまりsintai.datが 先に与えられている条件でsintai.datを読み込んで
struct sintai a[]へ代入する場合はどうすればいいでしょうか
0033デフォルトの名無しさんNGNG
fscanfを使え!てかスレ違いだ
0034デフォルトの名無しさんNGNG
メモ帳が保存できません
0035デフォルトの名無しさんNGNG
>>34
メモ帳を終了させてから notepad.exe をバイナリエディタで読み込み保存しろ
003628NGNG
>>30、>>31
すみません。環境説明が足りなかったです…
おっしゃるとおり、SDKなのでOnOKの処理はありません。

デフォルトボタンはリストビュー以外では有効にしておいて
リストビューでのエンターに対してのみ、ダイアログを表示したいのです。

この手の動きをするアプリはいくつかあるので、実現可能なはずなのですが…
0037デフォルトの名無しさんNGNG
visual c++.netでcppファイルからヘッダーファイルを作る方法を
教えてください。

m(__)mお願いします。
0038デフォルトの名無しさんNGNG
>>37
自分で.cppファイル解析して書くしかない。
ヘッダ間違って消したのか?
0039デフォルトの名無しさんNGNG
ダイアログベースのアプリケーションを作りたいんだけど
他の人が作ったファイルの機能などを取り込みたい、
でもそっちにもメインウィンドウがあってしかも機能がウィンドウに密着している(と思う)

このウィンドウは全然要らないので
必要な関数だけを読んでコードを書きました。
コンパイル、ビルドにはエラーはありません。

実行時に
Debug Library
Debug Assertion Failed!
というエラー
多分メインウィンドウが重複しているとかだと思うのですが..


もっと詳しく書かないとアドバイスもらえませんかね。
0040デフォルトの名無しさんNGNG
>>39
Assertしたならその行がわからないと。
「再試行」でその行に止まるからそれを見て自己解決か再投稿。
ソース抜き出し再利用とかでは気をつけないとよくある。
0041デフォルトの名無しさんNGNG
おそらくVCでコピーした時だけど
コピー前にクリップボードに "retun 1;"がはいっていて
"hoge()"を選択して
おそらくCtrl+Cを押すと
retun 1;hoge()
がクリップボードに入ってる時がたまにあるんだわ。

これって、Ctrl+C以外を押したときになるの?
それとも、VC以外の機能?

004241NGNG
環境は
VC6
WindowsNT4
です。
他に常駐は「紙」

インストールしているエディタは、
秀丸と
EmEditorと
サクラエディタと
xyzzy
です。
0043デフォルトの名無しさんNGNG
>>41
VC++のエディタ上での事?
0044デフォルトの名無しさんNGNG
>>43
はい。
ショートカットキーでコピペすると
たまに、古いクリップボード内容がくっついてるんです。
何か別のキーを押してたのかもしれません。
そんな機能ってあります?
0045デフォルトの名無しさんNGNG
>インストールしているエディタは、

(´ー`)y−〜〜
0046デフォルトの名無しさんNGNG
>>44
今、数十回やってみたけど、そんな事一度も起こらんよ。
とりあえず、SPはあててるの?
0047デフォルトの名無しさんNGNG
今日学校にVisual C++6.0があったので友達とコピーしてたのですが、
これって違法ですよね?
004829NGNG
すみません…先ほど番号を間違えました…

デフォルトボタンをやめて確認しようとしたところ、
VK_RETURNに入りませんでした!

つまり、デバッガで、VK_RETURNとVK_SPACEのMessageBoxにブレイクポイントしても
スペースは止まるが、エンターだと止まらないのです…

調べてみたのですが、MFCの場合は「PreTranslateMessage」を使う
ということはわかったのですが、SDKの場合はどうすれば良いのでしょう?
0049デフォルトの名無しさんNGNG
directplayでmsnZONEみたいな自動起動プログラムをつくりたいのですが
どうすればよいのでしょうか?
0050デフォルトの名無しさんNGNG
MFCでツールバーをフローティングしたりドッキングしたりする
アプリ作れますか?
作れるか作れないかで結構です。
それによって、VCかBCBにするか決めるので・・・
0051デフォルトの名無しさんNGNG
#includeで取り入れたいヘッダーファイルの場所を指定するにはどうすれば
よいのでしょうか?
#include<A>
#include<B>
#include<C>
A,B,C全て異なるフォルダから参照することはできますでしょうか?
0052デフォルトの名無しさんNGNG
>>51
意味わからんがとりあえず貼っとく。
ttp://forums.belution.com/ja/vc/000/262/27.shtml
0053デフォルトの名無しさんNGNG
>>50
出来る。
でもBCBの方が遥かに楽。
でも仕組み知っておきたいならMFCか。

BCBは、これ以上バージョンアップしない予感だし
仕事ではVCが遥かに多い。

とりあえず
両方知っとけ。
005450NGNG
>>53
ありがとうございます。
とりあえず、将来性に期待してVCを覚えます。
ゆくゆくは両方覚えられるといいかな・・・
0055デフォルトの名無しさんNGNG
開発環境:VC++6 SP5、最新のPlatform SDKインクルード、Windows XP Pro SP1

エクスプローラ上で、ファイルやフォルダのアイコンの上で右クリックすると、
「開く」「印刷」「検索」などの項目で構成されるメニューが表示されますよね。
項目を非表示させる、あるいは項目名が灰色表示で選択できない、というプログラムを
作りたいです。
イメージとして、作りたいと思うプログラムが起動されているとき、項目の非表示、
あるいは灰色表示で選択できなくなり、起動されていないときは普通に表示されて
選択ができる、というものです。

VCのシェルプログラミングに関するサイトをいろいろ見たのですが、イメージに
ぴったり合うサイトが発見できませんでした。
メニューに項目を追加する、というものならたくさんありましたが…。

どなたかやり方、あるいは参考リンクをご存知でしたら教えてください。
0056デフォルトの名無しさんNGNG
CMenu
EnableMenuItem(item, MF_GRAYED);
005755NGNG
>>56
ありがとうございます。
それで、関連して2つ質問があります。

(1)EnableMenuItemの第一引数に設定する情報ですが、afxres.hをインクルードして、
ID_FILE_XXX、又は、ID_EDIT_XXXで始まる定数を設定すればよいですよね?

(2)作りたいと思うプログラムは、MFCのダイアログベースでやりたいです。
試しに新規にプロジェクトを作成後、クラスウィザードでOnRButtonDownを追加して、
以下のように組みました。
(例:ファイルを右クリックしたときに、「開く」を無効にしたい場合)
void CClickDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
CMenu *hMenu;
CWnd* cwParent = GetParent();
DWORD dwStyle = cwParent->GetStyle();
hMenu = cwParent->GetSystemMenu(FALSE);
hMenu -> EnableMenuItem(ID_FILE_OPEN, MF_GRAYED);
CDialog::OnRButtonDown(nFlags, point);
}
上でビルドして実行ファイルが立ち上がっている状態で、あるテキストファイルのアイコン上で
右クリックしました。
しかし、「開く」の項目が無効になりませんでした。
これは、ソースの組み方そのものがおかしいのでしょうか?
ダイアログベースでできるのであれば、プロジェクト新規作成後からの手順を
教えていただけたらうれしいです。
0058デフォルトの名無しさんNGNG
>>57
ちょっと意図する事がよく分からないんですが、
要するに、自分の作ったプログラムから
エクスプローラのポップアップメニューを制御したという事ですか?

↓にシェル関係の情報が紹介されてるので参考までに。
ttp://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm
0059デフォルトの名無しさんNGNG
visual c++.net やってますが正直さっぱりわかりません。

javaはそれなりに出来ますがc++自体初心者です。
MFCアプリケーションだとすでに、ヘッダーファイルやcppファイルなどが
作られていますがその中の文法がわかりません。
2,3さつ本持っていますが、どれもコンテンツの加え方みたいなものしか書いていません。

中で何が行われているかわからないと、この先壁にぶち当たるような気がしていて
とりあえず、中でどういう順番で何が行われているか理解しようと思っています。

こういう自分にお薦めのvisual c++.netの本がありましたら教えていただけないでしょうか?
0060デフォルトの名無しさんNGNG
なら純粋なCやC++の本を買った方がいいんじゃないの?
0061デフォルトの名無しさんNGNG
javaは簡単っつーことだな。
0062デフォルトの名無しさんNGNG
>>59
自分も最初はMFCどころかC++の文法も分からなかったけど
C/C++の文法を覚えてからMFCでのプログラミングを練習したよ。

最初は、ホント滅茶苦茶なコードしか書けず何度何度も破綻したけど、
色々な書籍やサイトなどの文献を読み漁って(時には2chでの質問も)
諦めずにやっていたら、いつの間にやらそれなりにまともなコード書けるようになってたよ。

今では、公開しているソフトがそこそこ評価してもらえるくらいになったよ。
ちなみに、自分で「まとも」だと思えるアプリが作れる様になるまで3年くらいかかったけどね…
006362NGNG
>>59
>こういう自分にお薦めのvisual c++.netの本がありましたら教えていただけないでしょうか?
ごめん、ここの部分のレスがなかったね…
う〜ん、自分の場合は書籍よりもWebの方が有意義な情報が多かったような気がするなぁ。
0064デフォルトの名無しさんNGNG
>>59

1冊目 MFCによるWindows95プログラミング
ウィザードの吐き出したソースの変更ではなく
1からスクラッチでソースを起こす方式で
SDK的にMFCを解説
Win32APIの知識は無くても読める
C++の知識は必要

2冊目 MFCアンサーブック
前半にドキュメントビューアーキテクチャの解説がある
MFCのフレームワークが理解出来る
0065デフォルトの名無しさんNGNG
>>64
MFCによるWindows95プログラミングは、MFCによるWindowsプログラミングとして、改訂版がでてますよ。
0066デフォルトの名無しさんNGNG
MFCアプリケーションについて質問があります。
ソースファイル
 |_MainFrm.cpp
_SOFT.cpp
_SOFTDoc.cpp
_SOFTView.cpp
_stdafx.cpp
ヘッダーファイル
 |_MainFrm.h
_Resource.h
_SOFT.h
_SOFTDoc.h
_SOFTView.h
となっていて、MainFrm.cppの中でCMainFrame::OnCreateやCMainFrame::PreCreateWindow
など、MainFrm.hの中にあるメソッドについて何か操作をしているようですが、
これは一体何をしているのでしょうか?

あと、上記のソースファイルの中ではclassが定義されていませんが、classがある時と
ないときで何が変わるのでしょうか?
006766NGNG
↑
あ‥メソッドを上書きしているのですか?
006855NGNG
>>58
やりたいことはそのとおりです。
教えていただいたURLですが、実はシェルプログラミングの別件の調査で、
少し前に発見していました。
コーディングをするならEnableMenuItemを使うのではなく、レジストリ操作で
やる方法になるんですか…。
0069デフォルトの名無しさん NGNG
ウィンドウに描画された矩形をマウスでドラグするという
単純なテストプログラムを作ってみたんですが、どうもうまくいきません。
どうすればいいか教えて下さい。
説明が難しいのでワークスペースごとUPしてしまいました。
ごく短いVC++6、WinAPIのプログラムです。
ttp://gamdev.org/up/img/1157.zip
こんな事も分からない俺…orz
よろしくお願いします。
0070デフォルトの名無しさんNGNG
↑ウィルス
0071デフォルトの名無しさんNGNG
>>69
意図的に作られたものではないにせよ、実質ウィルス。
007269NGNG
まじで?なんか感染してる?
そうじゃなくてアフォプログラムでPCバグったとか
そういう意味だったらすいません。。。
0073デフォルトの名無しさんNGNG
何をしたいのかってのを明確にした方が早いと思うけどなあ。
007469NGNG
すいません。古いのをUPしてたんで消しました。
新しいのをUPしようとしたけど(どっちにしろまともに動かないけど)
やっぱ恥かしいので止めときます。

>>70>>71
とりあえず氏ね。
0075デフォルトの名無しさんNGNG
いちいち反応して暴言吐いてる香具師には多分無理w
0076デフォルトの名無しさんNGNG
マウスボタンON/OFF情報を保存するフラグ変数を用意して
マウスボタンON時は、マウスポインタが矩形内にあるか判断した上でフラグをTRUEにする。
マウスボタンOFF時は、フラグをFALSEにする。
で、その変数がTRUEの場合だけ、マウス移動と連動して矩形を移動させれば良いのでは?
007769NGNG
>>76
69でUPしたのはなんだかでたらめのやつをUPしてしまったんですが
76と同じ意味の事をやってるつもりのバージョンでもできないんですよねぇ。
WM_MOUSEMOVEは使いたくないし。。。
0078デフォルトの名無しさんNGNG
>>77
どの辺りが分からないのかをハッキリさせないと
多分誰も答えてくれないと思うよ。
0079デフォルトの名無しさんNGNG
他人が書いたWinソフトのソースコードを見ると
標準出力の起動しないアプリケーションで
よくprintfが描いてあるのですが、これはどういった効果のためでしょうか?
0080デフォルトの名無しさんNGNG
sprintfの見間違いと思われ
0081デフォルトの名無しさんNGNG
いえ、見間違いでは有りません、
デバッグのときだけ認識するようですがこれはなんなのでしょうか
0082デフォルトの名無しさんNGNG
visual c++.netでおすすめの本ってありますか?
0083デフォルトの名無しさんNGNG
>>79
標準出力の起動しないってどういう意味だ?

デバッグ用の出力だろ。
コンソールアプリでなくても標準出力はできるぞ。
パイプ開くツールから起動してログ取ったりする。リダイレクトも出来るだろ。
008469NGNG
>>78
すいません。昨日の部分はうまくいったんですが別の問題が発生したので改めて、、、

APIで矩形を描いてそれをマウスで掴んで動かす実験をしてます。
GetAsyncKeyStateでマウスボタンの押下状態を取得してるんですが、
外からボタンを押したまま矩形に接しただけでも矩形を掴めてしまって困ってます。
(連射しながら近づいているような扱いになっているためフラグとか使うのも無理っぽい)
ウィンドウメッセージのswitchを使わずに、
きちんと矩形内でマウスボタンを押下する以外には掴めないようにできないものでしょうか?
なにか方法があったら教えてください。お願いします。
↓ソースです。(VC6++です)
ttp://gamdev.org/up/img/1162.zip
0085デフォルトの名無しさんNGNG
脳内コンパイルだけどこれで駄目ですか?

static int oldX,oldY;;
static bool bDrag=false;

//左ボタンが押されてたら移動
if(bDrag) move(mouseX-oldX,mouseY-oldY);
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000){
 //カーソルが矩形内にあるかどうか判定
 if (mouseX>=wndX && mouseX<=wndX+wndW &&
     mouseY>=wndY && mouseY<=wndY+wndH){
  bDrag=true;
 }
}
else bDrag=false;
oldX=mouseX;
oldY=mouseY;
008669NGNG
>>85
すいません、駄目でした。。。
動き的には今までと同じ模様です。
0087デフォルトの名無しさんNGNG
じゃあこれは
if (!bDrag&&GetAsyncKeyState(VK_LBUTTON) & 0x8000)
0088デフォルトの名無しさんNGNG
>>87
あだめだ
0089デフォルトの名無しさんNGNG
んーこうかな?
int oldX,oldY;;
static bool bDrag=false,bFst=false;

//左ボタンが押されてたら移動
if(bDrag) move(mouseX-oldX,mouseY-oldY);
if (!bFst&&GetAsyncKeyState(VK_LBUTTON) & 0x8000){
 bFst=true;
 //カーソルが矩形内にあるかどうか判定
 if (mouseX>=wndX && mouseX<=wndX+wndW &&
     mouseY>=wndY && mouseY<=wndY+wndH){
  bDrag=true;
 }
}
else{bFst=bDrag=false;}
oldX=mouseX;
oldY=mouseY;

0090デフォルトの名無しさんNGNG
ヘッダーファイル
|_A.h
|_B.h
とあって、ヘッダーファイルAの中ではclass Aが定義されていて、ヘッダーファイル
Bの中ではクラスBが定義されています。
ここで、
#include "B.h"
class A : public BとしてクラスBを継承したいのですが
どうしても、C2054 の「定義されていない基本クラスが宣言されています」の
エラーが出てしまいます。
逆に、ためしに
#include "A.h"
class B : public A

とやると、エラーはでません。この理由がわかりません。この場合クラスAとBの
違いは何が考えられるでしょうか?
0091デフォルトの名無しさんNGNG
ごめんおれへっぽこだな
if (!bFst&&GetAsyncKeyState(VK_LBUTTON) & 0x8000){
 bFst=true;
 //カーソルが矩形内にあるかどうか判定
 if (mouseX>=wndX && mouseX<=wndX+wndW &&
     mouseY>=wndY && mouseY<=wndY+wndH){
  bDrag=true;
 }
}
else if(bFst){bFst=bDrag=false;}
0092デフォルトの名無しさんNGNG
>>90
恐らくだが、
先行宣言 でぐぐれ
009392NGNG
すまん、先行宣言関係ないじゃん…
0094デフォルトの名無しさんNGNG
>>90
原因を突き止めるためにsimplifyしてみたら?
----- A.h -----
#include "B.h"
class A : public B {};

----- B.h -----
class B {};

ここまでやれば通るでしょ?
009569NGNG
>>91
どうもです。
これでもだめっぽいです。
やっぱ時間を細切れに考えると連射で矩形内に侵入してることに
なってるんでしょうか。。。頭がこんがらがって…
009669NGNG
すいません、ちょっと別のところで聞いてくることにします。
色々お世話様でした。助けてくれた方ありがとうございました。
0097初心者NGNG
すいません、課題が進まなくて困っています、誰か教えていただけないでしょうか?
目的は、すでにあるテキストファイルを次々に読み込んでその中の一部のデータだけを
まとめて一つのファイルに出力したいのですが・・・、
次々にファイルを読み込む命令で,
fpopen(fp,"ファイル名+number","r");
みたいな形でnumberの部分for文で次々に変えていきたいのですが
うまくいきません(T_T)
strcatやstrcpyを使うことは考えたのですがint型はchar型では渡せないとかなんとかの
エラーが・・・。雑な説明ですがどうぞご教授願います。
0098デフォルトの名無しさんNGNG
>>97
sprintf
0099初心者NGNG
おお!?
試してみます!
ご返事ありがとうございます!!
0100デフォルトの名無しさんNGNG
>>96
そんなに難しい事かな?
以下のコードで出来るよ(確認済み)。

static POINT BoxPos;
static POINT OldCurPos;
static BOOL DrgFlag;

POINT CurPos;
GetCursorPos(&CurPos);
ScreenToClient(hWnd, &CurPos);

if(GetKeyState(VK_LBUTTON) & 0x80){
  if(!DrgFlag){
    if(CurPos.x >= BoxPos.x && CurPos.x <= BoxPos.x + 64 &&
      CurPos.y >= BoxPos.y && CurPos.y <= BoxPos.y + 64){
      DrgFlag = TRUE;
      OldCurPos.x = CurPos.x - BoxPos.x;
      OldCurPos.y = CurPos.y - BoxPos.y;
    }
  }
}else{
  DrgFlag = FALSE;
}

if(DrgFlag){
  BoxPos.x = CurPos.x - OldCurPos.x;
  BoxPos.y = CurPos.y - OldCurPos.y;
}
0101デフォルトの名無しさんNGNG
ソースファイル
A1.cpp
ヘッダーファイル
B1.h
をビルドするとエラーが出ませんでした。後にソースファイルにA2.cppを追加したらエラーが
でました。そしてその後A2.cppを消して再ビルドすると以下のエラーが出て
どうしても解決しません。

error LNK2020: 未解決のトークン
fatal error LNK1120: 外部参照1が未解決です。

調べると、変数が見つからないという類のエラーらしいのですが、だとしたら
一度通ったコードが通らなくなる理由がわかりません。
誰か教えてください!
010296NGNG
>>100
ありがとうございます。実は昨夜何とか解決しました。
100の方法試させて頂きましたが、
ドラグ状態で矩形に近づくと掴んでしまいません?
0103100NGNG
>>102
ああ、それが問題だったのね… 解決したなら、もう必要ないとは思うけど
以下修正コード。ちょっと汚いけど。

BOOL GetLBtnState(void)
{
static BOOL flag = FALSE;
  if(GetKeyState(VK_LBUTTON) & 0x80){
    if(!flag){ flag = TRUE; return TRUE; }
  }else{
    flag = FALSE;
  }
  return FALSE;
}
void Main(void)
{
static POINT BoxPos, OldCurPos;
static BOOL DrgFlag;
  POINT CurPos;
  GetCursorPos(&CurPos);
  ScreenToClient(hWnd, &CurPos);
  if(!DrgFlag && GetLBtnState()){
    if(CurPos.x >= BoxPos.x && CurPos.x <= BoxPos.x + 64 &&
      CurPos.y >= BoxPos.y && CurPos.y <= BoxPos.y + 64){
      DrgFlag = TRUE;
      OldCurPos.x = CurPos.x - BoxPos.x; OldCurPos.y = CurPos.y - BoxPos.y;
    }
  }else if(DrgFlag && !(GetKeyState(VK_LBUTTON) & 0x80)){
    DrgFlag = FALSE;
  }
  if(DrgFlag){ BoxPos.x = CurPos.x - OldCurPos.x; BoxPos.y = CurPos.y - OldCurPos.y; }
}
0104デフォルトの名無しさんNGNG
MFCをでコードを組んでいて、Onpaintで描画しようと思っています。
あるダイアログボックスの中に、Edit Controlを4つ、ボタンを1つ用意し
ボタンを押した瞬間に、Edit controlに入れられた値をパラメータとする四角形
をビューウィンドウに描画するようにしたいのですが、

Onpaint関数だと、ボタンを押した瞬間には描画してくれません。
又、Invalidate();を使うとビューウィンドウではなく、ダイアログボックスの中に
描画されてしまいます。

何か良い方法はありませんでしょうか?
0105デフォルトの名無しさんNGNG
よくわからんけど、RedrawWindow()じゃダメ?
0106104NGNG
一部追加。

void CChildView::OnBnClickedOk()
{
Invalidate();
OnPaint();
}
ボタンが押された時に呼び出される関数OnBnClickedOk()の中で上のように
書くとダイアログボックスの中に描画されてしまいます。
RedrawWindow()やupdatewindow()でもうまくいきません。
OnBnClickedOk()メソッドの中で再描画をコードしてはいけないのでしょうか?
0107デフォルトの名無しさんNGNG
>>106
OnPaint()が、CChildViewのメンバ関数だからじゃね?
描画すべき親の関数を呼び出してみては?
0108デフォルトの名無しさんNGNG
>>104
矩形表示用のウィンドウと値設定用のダイアログがあるのかな?
それなら値を格納する変数はとりあえずグローバルにしておいて
ダイアログのボタンを押したときに表示用ウィンドウ側に、
WM_PAINTメッセージでも送ってやったらどうだべ?
で表示用ウィンドウ側ではそのデータを元に矩形を描くと。
0109デフォルトの名無しさんNGNG
String Tableでは扱えない大きさの文字列をリソースにして読み込みたいのですがよい方法はありませんか?
0110デフォルトの名無しさんNGNG
main関数があるソースの場合
cout <<を使えば、そこを通る値が確認できデバッグしやすいのですけど、
MFCでコレに近いことってできませんかね。

ある場所を通る値を簡単に出力できるような方法がないですかね?
0111デフォルトの名無しさんNGNG
>>110
trace
0112デフォルトの名無しさんNGNG
MessageBox
0113デフォルトの名無しさんNGNG
>>109
バイナリリソースにして埋め込んでは伺か?
0114109NGNG
それを読み込む方法がわからないです
0115デフォルトの名無しさんNGNG
#pragma once
というのは、どこまで制御が及ぶんですか?

#pragma once
#include "a.h"
#include "b.h"
#include "c.h"

だと、"a.h" "b.h" "c.h"全てに制御されますか?
0116デフォルトの名無しさんNGNG
>>114
LoadResource(hModule, FindResource(hModule, lpName, lpType));
0117デフォルトの名無しさんNGNG
#pragma onceまで
0118デフォルトの名無しさんNGNG
>>116
できました。ありがとうございます
0119デフォルトの名無しさんNGNG
>>117
挟むんですか、なるほど。
ありがとうございます。
0120デフォルトの名無しさんNGNG
いきなりで申し訳ないですが質問させてください。

MDIのプログラムで別スレッドで1秒ごとにデータを受けながらそれを表示する
というようなプログラムを作っていたのですが、たまにその表示が固まってしまい
更新しなくなってしまいました。(このときCPU稼働率が100%になっていた)

これは 「for」もしくは「while」の条件文がどこかでおかしくなっている、と判断して
よいのでしょうか?
上の二つ以外にも可能性がありえるとしたら教えてください。

Win2k/VC6++
0121デフォルトの名無しさんNGNG
エスパー登場
↓
0122デフォルトの名無しさんNGNG
>>120
そうじゃないの?
0123デフォルトの名無しさん NGNG
標準コントロールのエディットボックスIDC_Aがあるとします。
直接コーディングでSetDlgItemText(hdc,IDC_A,"aaaa\r\naaa")
とすると自動で改行表示さます。
しかし、別のエディットボックスに同じように「aaaa\r\naaa」と手で入力し、
それをGetDlgItemTextして、
その文字列をIDC_Aにセットすると改行されないのは
どういう仕組みなんでしょうか。
0124デフォルトの名無しさんNGNG
.net XP

sinやcos、tanを使いたいのですが、
 error C2668: 'sin' : オーバーロード関数の呼び出しを解決することができません。
などというエラーが出てしまいます。
変数=sin(数値);
という形にしているのですが使い方が違うのでしょうか?
0125デフォルトの名無しさんNGNG
>>124
数値の型がまずいんじゃね?
0126デフォルトの名無しさんNGNG
>>123
前者はキャリッジリターン(0x0d)と改行(0x0a)の文字コードになる。
後者はただの「\r\n」という文字列。
0127デフォルトの名無しさんNGNG
>>125
kakudo(float型)=sin(20);
という形にしていますが、PIも使えないようなのでラジアン云々の計算すらできないです。
0128125NGNG
>>127
ダメダメ
kakudo(float型)=sin((double)20);
0129デフォルトの名無しさんNGNG
>>128
oops..
ありがとうございます。
sin・cos・tanはエラーが出なくなりました。

・・・その中に使う円周率のPIが使えないのですが、PIの前後に何か付くのでしょうか?
 error C2065: 'PI' : 定義されていない識別子です。
3.14159・・・でも誤差は僅かなのですがほぼ正確な円周率を使いたいです。
0130デフォルトの名無しさんNGNG
>>129
ttp://www1.coralnet.or.jp/kusuto/PI/super_pi.html

自分で求めれ
0131デフォルトの名無しさんNGNG
>>130
自分でやらないと駄目なのか(;´Д`)
0132デフォルトの名無しさんNGNG
PIと書いて、カーソル合わせると
#define PI 3.141592653589793
とツールチップでヒントが出るので、どっかに定義されてはいるみたいだな
ただ、どのヘッダーをincludeすれば良いのかは分からない・・・
(なら、ヒント出すなよ・・・)
0133デフォルトの名無しさんNGNG
>>123
ソースコード中の「\r\n」と通常(この場合エディットボックス)の「\r\n」は意味が違うよ。
エディットボックスに入力された「\r\n」はプログラムと違ってエスケープシーケンスとして認識出来ないよ。
だから、エディットの「\r\n」はコード上での「\\r\\n」と同義になるよ。
0134デフォルトの名無しさんNGNG
余計な問題が出ますたorz

selectのcase内で宣言したR[][]をグローバル変数R2[][]に入れるという作業をしたいのですが
>: error C2059: 構文エラー : ']'
「R2[][]=R[][];」をするとこうなりました。
*R・R2は2×2の行列
行列の中に行列を入れると言う動作は1発でできないのでしょうか。
できないならできないで2重ループで1つずつ処理すれば大丈夫そうだけど・・
0135デフォルトの名無しさんNGNG
構造体かmemcpy
0136デフォルトの名無しさんNGNG
どこに定義されてるかわからんようなのはgrepかけるなりwinの
検索なりで探せよド素人が。
0137デフォルトの名無しさんNGNG
VC++初心者です。
よろしくお願いします。

DHCP環境のWin2000/XPマシンがあります。
このマシンの
・IPアドレス
・サブネットマスク
を取得したいのですが、どのようにすればよろしいのでしょうか?
固定IPなら、gethostbynameが使えるのですよね。。。

今日一日、ネットで私なりに色々検索したのですが、分かりませんでした。
手がかりだけでも良いので、ご教授よろしくお願いします。
0138デフォルトの名無しさんNGNG
>>135
レスありがとうございます。
構造体・・・かorz
0139137NGNG
> 固定IPなら、gethostbynameが使えるのですよね。。。

hostsファイルに自分のホスト名とIPアドレスがあれば、と言うことですよね。
そのIPアドレスが固定じゃない(hostsにIPアドレスが記述されていない)DHCP環境では、
どうしたら良いのか。。。
0140デフォルトの名無しさんNGNG
>>138
memcpyでいいやん
0141デフォルトの名無しさんNGNG
>>137
> このマシンの
> ・IPアドレス
> ・サブネットマスク

そもそもそれ違ってるだろ
システムにアドレスがあるんじゃなくてアダプタに付いてるもんなんだから
0142デフォルトの名無しさんNGNG
memcpyは初めて聞いたので使い方がビミョンヌ(´・ω・`)
memcpy(R2,R,2)?;
0143デフォルトの名無しさんNGNG
>>142
MSDN読め
0144デフォルトの名無しさんNGNG
MSDNに書いていることって初心者には難しい(知らない言葉が出てくる)のはどうにかならないものかorz
とりあえず組みなおした後適当に試してみます。
0145デフォルトの名無しさんNGNG
>>120
凄い質問だなw
さて問題です。織田信長はどうでしょう?
みたいな。
0146デフォルトの名無しさんNGNG
おまいら標準Cの関数はマスターしたほうがいいぞ、できないと書けるコードが少なすぎるマになるぞ
0147デフォルトの名無しさんNGNG
132じゃないんですが、気になったので・・・
PIってどこで定義されてるか、どのようにすれば
分かるのでしょう?
0148デフォルトの名無しさんNGNG
MSDNでPIを検索
0149147NGNG
>>148
それは既に試みました
0150デフォルトの名無しさんNGNG
3.1415あたりで検索かけりゃわかりそうなもんだが・・
0151デフォルトの名無しさんNGNG
ありゃ、確かにHITしないな
0152147NGNG
うーん・・・
難しそうですね。
そんなに重大問題では無いので、きっぱり諦めます。
0153デフォルトの名無しさんNGNG
DirectXSDKにあった
#define D3DX_PI ((FLOAT) 3.141592654f)
0154137NGNG
>>141
そうですね。
では表現を正しくして、複数LANカードがささっているDHCPマシンの
・IPアドレス
・サブネットマスク

を知るには、どうすれば良いのですか?
0155デフォルトの名無しさんNGNG
これかな
ttp://homepage2.nifty.com/spw/tips/GetIpTable.html
0156デフォルトの名無しさんNGNG
VC++6を使用しています。
ダイアログボックス内に配置したスタティックテキストに線を描画させることが出来ません。
スタティックテキストのIDは「IDC_CANVAS」としました。
*.exeファイルを実行すると、ウィンドウは開かずにダイアログボックスのみを開くようにしてあります。

//関係のある部分のみ抜粋
/* global変数 */
HDC hdcMemCanvas; /* キャンバスのメモリデバイスコンテキストのハンドル */
HBITMAP hbmCanvas; /* キャンバスのビットマップのハンドル */
HBITMAP hbmDefCanvas; /* キャンバスのデフォルトビットマップのハンドル */
/* ここまで */

BOOL CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
/* case WM_INITDIALOG内 */
HWND hwndCanvas; /* キャンバスのウインドウハンドル */
HDC hdcCanvas; /* キャンバスのデバイスコンテキストハンドル */
RECT rectCanvas; /* キャンバスの矩形 */

/* キャンバスのためのメモリデバイスコンテキストを作成する */
hdcCanvas = GetDC(hwndCanvas);
hdcMemCanvas = CreateCompatibleDC(hdcCanvas);
ReleaseDC(hwndCanvas, hdcCanvas);
/* キャンバスのためのビットマップを作成する */
GetClientRect(hwndCanvas, &rectCanvas);
hbmCanvas = CreateCompatibleBitmap(hdcMemCanvas, rectCanvas.right, rectCanvas.bottom);
/* ビットマップを選択する */
hbmDefCanvas = SelectObject(hdcMemCanvas, hbmCanvas);
/* case WM_INITDIALOG内はここまで(以下の処理は省略) */

Draw(hWnd);
} /* DialogProcここまで */
0157156(続きです)NGNG
/* 線の描画 */
Draw(HWND hwndDlg){
MoveToEx(hdcMemCanvas, 30, 30, NULL);
LineTo(hdcMemCanvas, 200, 200);
SendDlgItemMessage(hwndDlg, IDC_CANVAS, STM_SETIMAGE,
(WPARAM)IMAGE_BITMAP, (LPARAM)hbmCanvas);
}


スタティックテキストの位置と、線を描画する座標は合っています。
どこがオカシイのでしょうか?ご教授願います。
0158137NGNG
>>155
うわぁー。これで解決するかもしれません!
早速試してみます。
ありがとうございます。
0159デフォルトの名無しさんNGNG
スタティックテキストに直接、線なんて描けるの?
スタティックコントロールの派生クラスを作って
そこのPaintかなんかで描画した方が簡単なような
0160デフォルトの名無しさんNGNG
MFCでコーディングしているとどうしてもドキュメントクラスに処理が集中してしまうのだが
どうしたらいいのだろうか。処理の意味的にビュークラスやアプリクラスには入れられない。

メニュー処理、ダイアログ表示、処理実行等、ドキュメント変更にかかわるもの全てドキュメントクラス上にあります。
MFCのアプリってのはこういうものなのでしょうか?
0161デフォルトの名無しさん NGNG
HDC hdc;
hdc=GetDC(GetDlgItem(hDlg,IDC_EDIT));//(GetDlgItem(コントロールの親ハンドル,コントロールのID)
MoveToEx(hdc, 30, 30, NULL);
LineTo(hdc, 200, 200);

って感じに簡単にエディットボックス内に線が引けた。
0162156NGNG
>>159 >>161
レスありがとうございました。
>>161氏の方法で、スタティックテキストに線を描くことが出来ました。
0163デフォルトの名無しさんNGNG
OS再インスコするのですが,VC6.0のカスタマイズのファイルって
バックアップできますか?
0164デフォルトの名無しさんNGNG
.hファイルにクラスのメンバやメンバ関数をいれ、
.cppファイルに関数の中身を書くというのはよく行うこと
なんでしょうか。
みなさんはどのようにファイルをまとめていらっしゃいますか?
かなり気になる==
もしいいサイトあったら教えてほしいです。よければお願いします。
0165デフォルトの名無しさんNGNG
>>164
テンプレート以外は普通そうしないか?
0166デフォルトの名無しさんNGNG
>>164
そんな感じで問題ないと思うけどね。
余程短いコードならヘッダに直接書いちゃう事もあるけど。
0167デフォルトの名無しさんNGNG
>>160
釣りか?

ドキュメントが処理ではなく、ドキュメントへ「通知」すると考えれば、
自然と各ビューに処理が分散される。
そもそもコマンド系がアプリやメインフレームに少なかったり、
ダイアログの処理がダイアログになかったりするなら、
なにか根本的な考え方に問題がある。
0168デフォルトの名無しさんNGNG
コマンドがアプリやメインフレームに集まる方こそおかしくないか?
アプリは GetViewList/GetDocumentListとか、Application.Exit Application.Clone とかだけでいいと思うんだが。
0169デフォルトの名無しさんNGNG
>>165 >>166
レスありがとうございました。
そうですか。なんかちょっと別の方法を期待してたのですが。
でも、そうと分かればしばらくその方法でいこうと思います。
慣れるまで。

続けて質問すみません。
WM_のウィンドウメッセージをキューから削除するような関数って
有りませんか。ちょうど、SendMessageやPostMessageの逆みたいな
関数。本やリファレンス調べてみたけど見つからない。
有りそうな関数だと思うんだけど。やろうとしているのは
ウィンドウ作成時にWM_ACTIVATEを呼びだすのを止めたいのですが。
でもでも、DefWindowProcに送らなくても大丈夫か。。?
実装してるコードが気になるが、リファレンスで探してみるも
また見つからない。検索の仕方難しい。
フラグで処理すればいいかも知れないが、何かとできない処理が
見つかればすぐにフラグが思い付く私は、、、、(ry
長文スマソ。。
0170デフォルトの名無しさんNGNG
GetMessageでもPeekMessage(PM_REMOVE)でも。
0171デフォルトの名無しさんNGNG
デスクトップ上のマウスの動きをプロシージャに送りたいのですが、どのようにしたら宜しいのでしょうか?
SetCapture()を使ったのですが、全然WM_MOUSEMOVEとかのメッセージがきません・・・
0172デフォルトの名無しさんNGNG
>>171
timerセットして、GetCursorPos()で監視とかではダメ?
0173デフォルトの名無しさんNGNG
>>171
マウスフック
SetCaptureはドラッグしている間しか効かなかった気がする。
0174デフォルトの名無しさんNGNG
VC++6.0 MFCを使ったダイアログベースのシリアル通信アプリケーションを作りたいのですが、
受信したものを表示させるところで行き詰っています。

char型の受信バッファをエディットボックスにいい感じに表示するにはどーすれば良いですか?

受信バッファ rcvBuf
エディットボックスのID IDC_EDITrcv
といった感じで、

ReadFile(hComm, rcvBuf, dwCount, &dwRead, NULL);//ファイルからデータを読み取る(char)
CString aiu;
rcv = rcvBuf;
SetDlgItemText(IDC_EDITrcv,rcv);

と、今はこんな感じです。

何やら無理やりCStringにしてるんですが、charのままエディットに表示できたりしないですか?
あと、これでも表示されるんですが、0x40と16進で表示させたいにもかかわらず ・@と文字コードで表示されてしまいます。

ご覧の通り初心者ですが、何かアドバイスお願いします。
0175174NGNG
すいません、訂正です。

ReadFile(hComm, rcvBuf, dwCount, &dwRead, NULL);
CString rcv;
rcv = rcvBuf;
SetDlgItemText(IDC_EDITrcv,rcv);
0176デフォルトの名無しさんNGNG
>>175
普通にこうじゃないの?
SetDlgItemText(IDC_EDITrcv, rcvBuf);
0177176NGNG
ゴメン 0x40 みてなかった・・・
0178169NGNG
>>170
削除じゃ無くて拾えば良かったんだ。
ありがとです。
0179174NGNG
>>176
すんません、普通に
ReadFile(hComm, rcvBuf, dwCount, &dwRead, NULL)
SetDlgItemText(IDC_EDITrcv,rcvBuf);
で表示できますね。無駄にCStringにしてました。意味なかったっぽいです。
↑これでchar型のままエディットボックスに表示できたのはいいんですが、
やはり、文字コードの・@と表示されてしまいます。

ちなみに、
SetDlgItemInt(IDC_EDITrcv,dwCount);
とすると、16と表示され、受信データは16バイトのはずなのですが、先頭の40しか表示できていないのも気になります。

まずは@の文字コードを40と表示できるようになってから16バイトすべて表示させてやろうと考えております。

何度も書き込み申し訳ありません。
0180デフォルトの名無しさんNGNG
そら0x40は@だからなあ・・・・そう表示されちゃうべ。
通常の数字やアルファベットはそのまま表示して、特定のコードだけ
16進で表示しようとしてるんかね?
01815歳の女をレイプマン SSNGNG
ss(おしゃれやん芸人)は和田明子を車で引かしたのでしょうか。
0182デフォルトの名無しさんNGNG
>>172,>>173
0183デフォルトの名無しさんNGNG
すみません・・・間違えて書き込んでしまいました
>>172さん>>173さん
どうもありがとうございました。
フックでやってみます
0184179NGNG
>>180
>通常の数字やアルファベットはそのまま表示して、特定のコードだけ
>16進で表示しようとしてるんかね?

そうです。
@にならないように、0x40、もしくは40とエディットボックスへ表示するにはどうしたら良いでしょうか。
0185デフォルトの名無しさんNGNG
>>184
sprintf(mojiretu, "0x%x", suuji)
0186184NGNG
>>185
ReadFile(hComm, rcvBuf, dwCount, &dwRead, NULL)
sprintf(rcvBuf,"0x%x",rcv)
SetDlgItemText(IDC_EDITrcv,rcv);
ということでしょうか。

何はともあれアドバイスありがとうございます。
現在は開発環境が無いため、明日朝一でアドバイスを元に試行錯誤してみます。
0187デフォルトの名無しさんNGNG
>>186
逆だよ。一桁づつしか変換できないし。

sprintf(rcv, "%#x", rcvBuf[0])
SetDlgItemText(IDC_EDITrcv, rcv);

0188184NGNG
>>187
あ、はい。。
ご指摘感謝です。
0189デフォルトの名無しさんNGNG
ちょっと気になることがあるので教えてください。

1、 TypeA& func() { return *new TypeA; }

2、 game->fire(new CBullet(iX+12,iY-6,0,-10,game));

↑のコードはどっちもネットで見つけたものなんですが、どこにもdeleteが書いてないんですがこれってメモリリークにならないんですか?
0190デフォルトの名無しさんNGNG
前者は大抵の場合リークになるだろうな。
ただ、際限なく増えつづけるような悪質なものとは限らない。

後者はfireの中でdeleteしてるかもしれないしなんともいえない。
0191デフォルトの名無しさんNGNG
>>190
レスどうもです。
やっぱりリークするんですか。
ネットに載せるくらいだから間違いないんだろうな〜と思ってたんですが、そうでもないみたいですね・・・。
すっきりしました。
0192デフォルトの名無しさんNGNG
>>191
リークするかどうかは、newのオーバーライドやその後のコードによるんだよ。
参照にしたものからわざわざポインタを取り出してdeleteする事もできるし、
ヒープ以外から確保するようにnewをオーバーライドしているかもしれない。

ついでに言えば使い方次第ではdeleteしなくても間違いじゃない。
0193デフォルトの名無しさんNGNG
ネットに載せてあるソースなんて、大抵間違いだらけ
0194デフォルトの名無しさんNGNG
VC++6を使用しています。
ウィンドウを作らずにダイアログボックスのみを開くプログラムを作成しています。

プログラム実行と同時に線を描画させたいのですが、上手くいきません。

・global変数として「HDC hdc_field」を作成。
・ダイアログプロシージャ関数の case MW_INITDIALOG 内で hdc_field = getDC(hWnd);
�@↑のgetDCの命令の下に、線を描画させる関数を配置。
�A線を描画させる関数を、ダイアログボックスに配置したボタンを押したときに呼ぶ関数内に配置

�Aでは線が描かれるのですが、�@では線が描かれません。
同じ関数を呼び出しているのに、どうしてなのでしょうか?
また、プログラム実行と同時に線を描画させるにはどうしたら良いのでしょうか?
(ウィンドウを開くプログラムではこのような問題は生じなかったのですが…)

よろしくお願いします。
0195デフォルトの名無しさんNGNG
>>194
WM_INITDIALOGが送られてくる時点ではまだダイアログは画面に表示されてないから何描いても無駄。
WM_PAINTに処理書くとか、WM_INITDIALOGでWM_APP+nをpostしてそこで描くとか。
0196デフォルトの名無しさんNGNG
ありがとうございました
0197194NGNG
>>195
むむ、そうですか。やってみます。
ありがとうございました。


>>196
自分の番号と、レスアンカーを付けた方がよろしいかと。
0198デフォルトの名無しさんNGNG
えーとC言語歴一週間のヘタれですが
これからVC++とMFCというやつで色々作って行こうと思ってます。
ベクターとかで公開してそこそこダウンロードしてもらえる様な物を作るのが当面の目標です。

この版見ているとMFCが難しいと言う意見が多いんですが
実際自分でちゃんとしたアプリが作れる様になるには平均的にどのくらいかかるもんなんですか?
その辺は人によりけりだというのは百も承知ですが
参考までに最低でもこの位の期間が必要だというのを教えていただければ幸いです。
0199デフォルトの名無しさんNGNG
下積みの有無によるものが大きい。
MFC使った事なくても、JavaAppletとかで画面イベントに慣れていれば1ヶ月くらいでいけるかも。
0200198ですNGNG
>>199
レスどうもです。
下積みですか。でも自分は下積みどころかプログラムするのも初めてなんですよ・・
こんな感じだとやっぱり結構時間がかかるんでしょうね・・

それともう一つお聞きしたいのですが
ボーランドのC++ビルダーとかは使いやすいと言う意見が多いのですが
具体的にどの辺がMFCと比べて使いやすいのか教えて頂けると助かるのですが。
場合によってはそちらの方に乗り換えようかとも考えていますので。
0201デフォルトの名無しさんNGNG
コードを書かなくても外見だけは作れる
0202デフォルトの名無しさんNGNG
>>200
そういう考えかたならVBを勧める
0203デフォルトの名無しさんNGNG
パソコン買ったけど使えなくて挫折する
VC買ったけど使えなくて挫折する
どっちもよく聞く話
0204デフォルトの名無しさんNGNG
全く経験ない場合は、CとC++をやってから、MFCに移行だけど、はっきり言って
相当に時間がかかるし、エネルギーも必要。大抵の人は挫折を途中にはさみ
ながら、紆余曲折を経て目的に到達というところだろう。

趣味でなく、学生とか仕事だとしたら、向けられるエネルギーも多いだろうから
一気に行ける場合もあるかも知れない。

いずれにせよプログラミングってのは、ただパソコンいじるのと別次元の難しさ
があるから、あんまり甘い期待を持たないことだ。
0205デフォルトの名無しさんNGNG
マルチメディアタイマーを使用しています。Visual C++だと
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
を書けばうまくいくのですがBorland C++だとうまくいきません。
リンクができないところが原因だと考えています。設定の仕方を教えてください。
また時間の精度として1msを必要としていてマルチメディアタイマーを使っています。
もし他に何かいい方法をご存知でしたら教えてください。詳しくお願いします。
0206デフォルトの名無しさんNGNG
はじめまして
厚かましいお願いなんですが、VC++6.0のMSDNコレクションのCDの中身を
アップしてくださいませんか?ヘルプが使えなくて困っています。
だめならそのCDが売っている所を教えていただけると嬉しいです。
0207デフォルトの名無しさんNGNG
>>205
Borland C++の事など知ったこっちゃありません
0208デフォルトの名無しさんNGNG
>>205
パフォーマンスカウンタ使えば?
0209デフォルトの名無しさんNGNG
普通のMSDNライブラリなら秋葉の怪しい店で売ってる。

0210デフォルトの名無しさんNGNG
>>208
もしよければなにか具体的に使用したプログラムの例はありますか?
0211デフォルトの名無しさんNGNG
>>210 こんな感じかなぁ。
#include <iostream>
#include <windows.h>
using namespace std;

int main(void)
{
LARGE_INTEGER freq, now, old;
UINT r = 60;

QueryPerformanceFrequency(&freq);
while(!(GetKeyState(VK_RETURN) & 0x80)){
cout << "fps: " << r << endl;

QueryPerformanceCounter(&now);
while(now.QuadPart - old.QuadPart < freq.QuadPart / r){
QueryPerformanceCounter(&now);
}
QueryPerformanceCounter(&old);
}
return 0;
}
0212名前は開発中のものです。NGNG
>>206
犯罪を犯せというお願いですか。
凄いですね。
厚かましいとかいう次元の問題ではないですね。
夏ですね。
0213デフォルトの名無しさんNGNG
>>206
>>3
0214デフォルトの名無しさんNGNG
>>211
親切にしていただきありがとうございます。試してみます。
0215206NGNG
すみませんでした。
秋葉原を探してみます。
0216デフォルトの名無しさんNGNG
>>215
だから、なんで>>3じゃダメなんだ?
0217デフォルトの名無しさんNGNG
>>211
Borland C++ではまたエラーがでてしまいました。>>211さんはVisual C++ですか?
もしBorland C++でのやり方を知っていたら教えてください。
0218デフォルトの名無しさんNGNG
★初心者にVisual C++を教えるスレ★ Part14

Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
0219デフォルトの名無しさんNGNG
>>206
MFCとかATLは無理だけど、PlatformSDKのドキュメントなら
PSDK Updateについてくるからそれ使えよ。
他のが見たければMSDN Library Online使うしかないけど。
0220デフォルトの名無しさんNGNG
>>206は発想が割れ厨だろ。マンドクセ。
0221デフォルトの名無しさんNGNG
まじめに、どこから手をつけたら良いかわかりません。
みなさんがプログラミングを始めたきっかけとかどういった感じに勉強したかを教えてください。
0222デフォルトの名無しさんNGNG
結局やる気の問題じゃないかな。
当然まず環境から揃えなきゃならんけど。
0223デフォルトの名無しさんNGNG
>>221
べーマガを書店で見掛けたから。
0224デフォルトの名無しさんNGNG
>>221
消防のころ電気屋でパソコンを見て欲しくなった。
買ってもらえなかったんでチラシの裏にBASICでプログラム書いてた。
(チラシの裏でゲームはできなかったので。)
0225デフォルトの名無しさんNGNG
>>221
とりあえず入れ物から行く人が多いんじゃないかな?
まずVC買って、自分のカネで用意したからにはそれなりにやろうという気になるし。
後は書籍だろ。他人の推薦とかより立ち読みして自分に合ったの見つける方が良い
とオレは思うけど。
0226デフォルトの名無しさんNGNG
VC2003のエディタで質問なんですが、
選択した範囲のインデントを整形してくれるショートカットキーって
どうやるんでしたっけ?
なんかやり方忘れたのか、はたまた効かなくなってるのか・・・

for(;;){
a=0;
}

↓(Alt + ?)

for(;;){
    a=0;
}

こうなるヤツです。

0227デフォルトの名無しさんNGNG
ツール
オプション
テキストエディタ
0228デフォルトの名無しさんNGNG
>>224
私も買ってもらえなくて(小3くらい.),
べーマガとか月刊マイコンなんか買ってリストを読んでたなぁ.
さすがに224さんみたいに処理系手に入る前に自分で書くようなことはしなかったですけど.
0229デフォルトの名無しさんNGNG
CString strから'\n'を判定して1行ずつ文字列を得たい場合どうすればいいですか?
0230デフォルトの名無しさんNGNG
>>227
ちがうんです><
スマートインデントじゃなくて、後からインデントを一発で整形するヤツです!
みんな使わないのかなぁ・・・
0231デフォルトの名無しさんNGNG
Atl+F8だろ。
0232デフォルトの名無しさんNGNG
VC++6.0を会社の研修で使ってます。
自宅でも勉強しようとVC++.net2003を購入したんですが
Win32コンソールでソース書いて開始してもコマンドプロントが実行後すぐに
終了してしまいます。
どこか設定で終了させないようできるのでしょか?

#include <stdio.h>
void main(void)
{
printf("テストです。\n");
}

などと書いても一瞬表示されて自動終了します。
コンパイルもビルドもエラーはありません。
会社で使っているVC++6.0では表示されたあと何か
キーを押すと終了されるようなっています。
ちなみに会社も自宅もWinXPです。
0233デフォルトの名無しさんNGNG
>>231
ありがとう!それを手掛かりに、
オプション→キーボード マップ スキームを「Visual Studio 6」
に設定したら直りました。
快適快適☆
0234233NGNG
>>232
あ、それ知ってますよ
Ctrl + F5
です
0235232NGNG
>>234
ありがとうございました!
非常に助かりました。感謝します!
勉強がんばるぞ!
0236デフォルトの名無しさんNGNG
すいません。Visual C++ 6.0 でメンバテンプレートを
コンパイルするには何かコツがあるんでしょうか?

いま手元にソースや環境がないので詳細な例とか
エラーメッセージとか出せないので申し訳ないんですが、

class MyClass {
 template <class Type>
 static bool fetchValue(Type & value);
}

こういった感じのコードをコンパイルできないんです。
gccとかVisual C++ .NETでは通るのに。。

何か関連する情報をご存じでしたら教えていただけませんか?
0237232NGNG
すいませんもうひとつ質問させてください。
VC++6.0のときのようにワークスペースを切り替えできるようなものはVC++.net2003ではどのように設定すればいいのでしょうか?

ソリューションエクスプローラからスタートアッププロジェクトに設定でことをすませておりますが、
以前のようにワークスペースをメニューバーから簡単に切り替えられないものかと思います。
どうぞご教授お願いします。
0238デフォルトの名無しさんNGNG
>>236
VC6はテンプレートに完全に対応してないとか聞いたが
0239デフォルトの名無しさんNGNG
>>236
typoだと思うけど
template <class Type>
class MyClass {
...
でしょ?
とりあえず必要十分なソースを出してくれ。
話はそれから。
0240デフォルトの名無しさんNGNG
>>239
メンバテンプレートって言ってるから>>236であってると思うけど。
0241239NGNG
>>240
なるほど、それで分かった。
VC6 はメンバテンプレートには対応してないんだ。
俺、VC6 しか使ってないから、>>239みたいのでも
メンバに使ってればメンバテンプレートって言うのかと思ってたよ。orz

>>236さん、あきらめてください。
0242デフォルトの名無しさんNGNG
>>236のコードは、VC6でも通るぞ。
ただ、

MyClass::fetchValue<char>(0);

という感じで、型指定をしている場合は通らないハズ。
自動的に型を判別出来る場合は通る。
0243デフォルトの名無しさんNGNG
>>236
class MyClass {
public:
template <class Type>
static bool fetchValue(Type & value)
{
value = Type();
return true;
}
};

int i;
MyClass::fetchValue(i);

VC++6SP6で通ったけど素直に.NETに移行した方がいいと思う。
0244デフォルトの名無しさんNGNG
MFCなんですが、ダイアログベースでメニューを追加したんですが、
メニューの所が窪んだ感じ(視覚的に)なって、動きには関係ないんですが、
どうにかあの窪み(?)を無くせませんか?
VC++2003です。
0245虎夫NGNG
現在作っているプログラムで、
割り込みによって一定時間ごとにデータを取得しております。

このとき割り込みの周波数を100[Hz]に設定すると、
プログラムは0.01秒毎にタスクを行います。
(PCのCPUが十分であると考えて)
たとえばタスクA,B,Cを割り込みの1周期に1度行うとすれば、
Aのタスクは0.01秒ごとに遂行されます。

しかし、もしBというタスクが常に2秒かかるタスクだとすれば、
それぞれのタスクは2.01秒に1回しか遂行されません。
これはあれ程度しかたありません。

現在私の悩んでいる問題は、
A,Cというタスク(1回に1msもかからない)を0.01秒ごとに
遂行して、ある条件の時にBというタスクを行いたいとすると、
今のままでは、A,Cは普段0.01秒に1度タスクが遂行されますが、
Bが遂行されるときにはタスクが2秒(Bの遂行時間)待ちが生じます。
こんなとき、BをA,Cとは並列に遂行させ、
常にA,Cを0.01秒ごとに遂行させるにはどうすればよいでしょうか?
(ここで、Bが遂行中に次のBの命令がくることはないとします。)
0246デフォルトの名無しさんNGNG
>>242
>MyClass::fetchValue<char>(0);
>
>という感じで、型指定をしている場合は通らないハズ。

げ、まさにそれです。

>>243
みたいに <> を付けないで呼び出せばよかったんですね。
情報ありがとうございました!

ただ、

class MyClass {
public:
template <class Type>
static Type fetchValue(const MyInstance & instance, const string & key);
};

int i = MyClass::fetchValue<int>(instance, key);

こんなことはVC++6ではできないということなんですよね。。。
0247デフォルトの名無しさんNGNG
>>246
>こんなことはVC++6ではできないということなんですよね。。。
うむ。

VCToolKitとか、VC2005Expressβとか落として使ってみるのも手だけど、
おそらく、たくさんコードを書き換えないと動かない予感......
0248デフォルトの名無しさんNGNG
>>245
プログラミング以前の問題
0249デフォルトの名無しさんNGNG
>>245
A,Cの処理は10ms以内に収まるのであれば割り込みトリガそのもので
シーケンシャルに動かして、Bの処理は割り込みトリガからスレッド起動で
処理するとか。A,CとBは同期してる必要がなければ、ね。
0250デフォルトの名無しさんNGNG
これ初めて使うんですが、
何かサンプルコードとかがあって、わかりやすいHPあれば教えて下さい。
0251デフォルトの名無しさんNGNG
>>250
http://www.kumei.ne.jp/c_lang/
0252デフォルトの名無しさんNGNG
VCを勉強するのに最適な本、教材があれば教えて下さい。
0253デフォルトの名無しさんNGNG
>>251
�d。勉強してきま
0254デフォルトの名無しさんNGNG
>>252
最適は人によってそれぞれ。
よって答えることは不可能。
0255デフォルトの名無しさんNGNG
初めまして、C++初心者なのですが、さっそく質問です。
例えば、coutで"数値を入れてください"と表示させて
数値を入れた後に"数値を入れてください"の部分が消え
数値を入れた後の答えだけがでるようにするにはどうすればいいのでしょうか?
それとdos画面でreturn 0;とcoutの間に改行を入れるにはどうしたらいいですか?
ご教授お願いします。
0256デフォルトの名無しさんNGNG
>>255
完全なスレ違い
それはVisual C++ではなくてC++
0257デフォルトの名無しさんNGNG
>>255
system("cls");
0258デフォルトの名無しさんNGNG
>>256
失礼しました。

>>257
できました!!ありがとうございます。
0259偏差値37NGNG
今日VisualC++.NETを買ってきました。
プログラミング経験は無いです。
よろしくおねがいします。
0260デフォルトの名無しさんNGNG
cl.exeの
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_.2f.o.asp
の/Oオプションって複数していできるんですか?
例えば「/O2 /Ot」とか?
0261デフォルトの名無しさんNGNG
出来るよ。
ただし、組み合わせによっては無効になるものもある。
0262デフォルトの名無しさんNGNG
環境:VC++.NET 2003

A, B, Cという3つのプロジェクトがあって、
BはAのソースとヘッダを、CもAのソースとヘッダを
自らのものと混ぜて一緒にコンパイルしたいのです。
このとき、BやCのソリューションエクスプローラに
Aのソースとヘッダを登録しないとだめなのでしょうか。
Aの構成を変えたときに、BとCの両方を変更するのが
面倒くさくて…。
0263デフォルトの名無しさんNGNG
DevPartner Profilerの.NETバージョン(7.0)を落としたんですが、VC++7.0で使えません。
ネイティブコードでも使えるようなこと書いてあったんですが、どうすればいいんでしょうか。
ちなみに使えないというのは、プロファイラを有効にして実行しても何も起こらないって意味です。
誰か助けてください。
0264デフォルトの名無しさんNGNG
>>245
http://forums.belution.com/ja/vc/000/266/22.shtml
0265デフォルトの名無しさんNGNG
VC6と.NETの違いってなんですか?
経験だと.NETアプリって重いから移行したくない…。
日曜プログラマみたいな自分でも移行してたほうがいいですか?
0266デフォルトの名無しさんNGNG
>>265
VC.NETは.NETアプリだけでなく、
従来通りのWin32ネイティブのアプリも作成可能
VC6 = Win32アプリ
VC.NET = Win32アプリ or .NETアプリ
移行の必要はさほどないと思います。
0267デフォルトの名無しさんNGNG
質問があります。

Win2000/VC++環境にて、LANアダプタのDHCPの設定(Enable/Disable)は
どのようにすれば取得できるのでしょうか?
色々調べたのですが、解りませんでした。
ご教授、宜しくお願いします。
0268偏差値37NGNG
新VisualC++.NET入門 ビギナー編 林晴比古
という本を買ってきました。
0269デフォルトの名無しさんNGNG
>>268
で何よ?
0270デフォルトの名無しさんNGNG
NET版はどうなんだろ?

http://hp.vector.co.jp/authors/VA023882/review.html
新VisualC++6.0入門 ビギナー編 林晴比古
> やさしすぎて、内容的には、MFCプログラミングのほんの触りだけという感じなので、
> この本だけで何かを創るのは不可能でしょう。
> また、サンプルソースの所々にちょっと不適切と思われる部分が見られます。
0271偏差値37NGNG
>>270
3部に分かれてますね。

・VC++.NETの操作法
・VC++.NETを使ったプログラミング
・C++の説明
の3つです。。。Amazonのレビューにもありましたがマニュアルって感じです。
書店でVC++.NETの本を探したのですが他の本は体系だてて説明していないのでこれにしました。
0272デフォルトの名無しさんNGNG
>>268
同じ本持ってるけど、結構いい
0273デフォルトの名無しさんNGNG
vc++6使用です。

ダイアログボックスベースのファイルを作っています。
*.exeファイルのアイコンの設定方法がわかりません。

ウィンドウベースの場合では、int WINAPI WinMain関数中に
WNDCLASSEX wcl;
char iconName[] = "IDI_ICON1";
wcl.hIcon = LoadIcon(NULL, iconName);

とすることでアイコンを設定できますが、ダイアログボックスベースの場合は
どこに、どのように既述をすればよいのでしょうか?よろしくお願いします。
0274デフォルトの名無しさんNGNG
SetIcon
0275デフォルトの名無しさんNGNG
HICON hIcon;
hIcon=(HICON)LoadImage〜
って感じでアイコン読み込んで
SendMessage(hDlg,WM_SETICON〜
でメッセージ送ればできるのではないだろうか。多分。
0276デフォルトの名無しさんNGNG
>>267
GetAdaptersInfo関数かなあ。
複数ネットワークカードがささってる場合の処理に気をつけた方が
よさそう。(IP_ADAPTER_INFOのNextに次のへのポインタ、など。)
0277デフォルトの名無しさんNGNG
どっかスレと似たような質問と回答だな
0278デフォルトの名無しさんNGNG
新VisualC++.NET入門 ビギナー編 林晴比古
いいんだけどさ・・・・ちっともシニア編が出ない訳よ。
近刊ってなってから1年経つんだけど、もう出すの辞めたの?
頼むよ晴比古クン。
0279デフォルトの名無しさんNGNG
死
0280デフォルトの名無しさんNGNG
もうVC++6.0入門シニア編を脳内変換するしかなお
0281デフォルトの名無しさんNGNG
基本クラスのメソッド内で派生クラスのメンバを使わせる方法ってありませんか?

class Data : public Photo{
protected:
Point pt;
}
class Photo{
protected:
PhotoData *pData;
char FileName[128];
public:
void LoadPicture(){
WinLoadPicture(pData, FileName);
}
void Draw(){
WinDraw(Data::pt, pData); //ここ
}
}
こんな感じの使い方がしたいです。即席で作ったので間違ってるかも。
へぼへぼ。
0282デフォルトの名無しさんNGNG
DataがPhotoを継承するの?
0283デフォルトの名無しさんNGNG
>>281
Photoで
virtual Point& getPoint() = 0;
ってやってDataで
Point& getPoint() {
return pt;
}
って実装させればいいじゃん。
0284デフォルトの名無しさんNGNG
ウィンドウを半透明にしたいのですが、ソースの一番上で、

#define _WIN32_WINNT 0x0500

としてるのですが、コンパイル時に
error C2065: 'WS_EX_LAYERED' : 定義されていない識別子です
となって、コンパイルできません

WinUser.hの中を検索したのですが、WS_EX_LAYERED というものが見つかりませんでした・・・
わかるかた、よろしくお願い致します
0285デフォルトの名無しさんNGNG
>>282 >>283
Photoクラスをそのまま使い、Dataクラスは
Data1、Data2とかそれぞれ固有のメンバを持つ
クラスを作成しようとしてます。
だから、Dataクラスが基本で、Photoクラスを
派生にしました。
うーん、やっぱり派生クラスでデータを吐き出して
基本クラスで読み込むしかないのかなぁ...
それとも、継承を逆にするか、もう一回考え直します。
質問する事で頭の中が整理されたような気がします。
する前はパニック状態でした。ありがとうございました。
自分で考えるしか無さそう...
0286284NGNG
すみません。開発環境を書き忘れました

WindowsXP、VC++6.0 です。
0287デフォルトの名無しさんNGNG
>>284
MS行って最新のPlatform SDKダウンロードして来い
0288デフォルトの名無しさんNGNG
プラットフォームSDKで導入されたから
CDからインスコしただけのVCのヘッダには
当然入っていない。VC++6でしょ?
0289284NGNG
>>287さん,>>288さん
重ね重ね申し訳ございません
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/
で Select All SDKs でインストールしましたが、同じエラーが出てしまいます・・・
0290デフォルトの名無しさんNGNG
ディレクトリを設定する。リストの一番上にSDKを持ってくる。
0291デフォルトの名無しさんNGNG
>>284
#ifndef WS_EX_LAYERED // 念の為、トラブル回避
#define WS_EX_LAYERED 0x00080000
#endif
↑を、自分のソースにコピペすればいいよ。
0292デフォルトの名無しさんNGNG
>>285
template<class D> class Base {
public:
 void Draw() {
  static_cast<D*>(this)->Draw();
 }
};

class Derived : public Base<Derived> {
public:
 void Draw()
 {
  // 略
 }
}
0293デフォルトの名無しさんNGNG
WTLキタ━
0294デフォルトの名無しさんNGNG
>>276
ありがとうございます。
0295デフォルトの名無しさんNGNG
>>289
スタートメニュー -> Microsoft Platform SDK -> Visual Studio Registration -> Register PSDK Directories with Visual Studio
0296デフォルトの名無しさんNGNG
AlphaBlend関数を使おうとしてコンパイルしたら通りました。
・・・がビルドしようとしたら以下のようなリンクエラーが出ました。

error LNK2001: 外部シンボル "__imp__AlphaBlend@44" は未解決です
fatal error LNK1120: 外部参照 1 が未解決です。

こういった場合どうすればいいんでしょうか?
誰か知っている方がいましたら教えていただけませんでしょうか。
お願いします。
0297デフォルトの名無しさんNGNG
すみません初心者すぎる質問なんですけどよかったら答えてくれたらうれしいです

string str;

for(i=0; i<30; i++) {
  str.insert(str.length(),filename[i]);
  str.insert(str.length(),"\n");
}
Edit_SetText(hEdit, str.c_str());

とゆう感じでエディットボックス?に文字列もセットしたんですけど、文字列が全部つながって一行に表示されるんですけどどうしたらいいのでしょうか・・・
multilineにしちるし編集する時にはエンターで改行も出来ます
0298285NGNG
>>292
はっきりとは理解できないのですが(勉強不足)
派生クラスのメソッドが基本クラスになってる(?)。すごい
ある一つのメンバが基本クラスにコピーされているのでしょうか

結局、継承を逆にするとスムーズにいかないので派生のメンバを
渡すことにしました。というか、継承してないです。。。
基本クラスをメンバに持たせたらごく自然に上手くいきました。
お騒がせしました。恥。。。ホントすみません。
0299デフォルトの名無しさんNGNG
>>297
"\r\n"
0300デフォルトの名無しさんNGNG
>>297
msimg32.libをリンクしろ
0301デフォルトの名無しさんNGNG
>>296だった・・・
0302デフォルトの名無しさんNGNG
>>297
あとinsertより
str += filename[i];
と書いたほうが見やすいと思う。
0303デフォルトの名無しさんNGNG
>>299
>>302
お〜ありがとうございます m(_ _)m
勉強になりました
0304デフォルトの名無しさんNGNG
>>300

どもども。出来ました〜。
0305284NGNG
>>290さん
Program Filesの中探してたらありました!どうもありがとうございます

>>291さん
直接書くっていう方法もあったんですね。今後何かあったらやってみます。

>>295さん
私のではなぜかスタートメニューにありません・・・
0306デフォルトの名無しさんNGNG
>>305
なけりゃ実物を探せよ。
つーか別ユーザのスタートメニューに入ってるんだろ。探せよ。
0307デフォルトの名無しさんNGNG
OnKeyDownで、アローキーの左と下、右と上、等の同時押しの判定はどうやるんですか?
0308デフォルトの名無しさんNGNG
Borland CでのBGIによるgraphics.hの内容をVisual C++で描きたいのですが
書き換えの仕方を教えてください。
0309デフォルトの名無しさんNGNG
>>308
そういう問題じゃがいも無い
0310デフォルトの名無しさんNGNG
>>307
if((GetKeyState(VK_UP) & 0x8000) && (GetKeyState(VK_DOWN) & 0x8000)){
 MessageBox("!");
}
0311デフォルトの名無しさんNGNG
>>310
ありがとうございます
0312デフォルトの名無しさんNGNG
mozi配列に代入した平仮名(カタカナ含む)をローマ字に変換してans配列に代入したいのですが上手くいきません。
説明しづらいので簡略化したソースは、

char mozi[20],ans[40];

strcpy(mozi,"ひろゆき"); //変換したい文字列を代入

//mozi配列の一文字目が'ひ'であればans配列にHとIを代入
if(strncmp ( mozi , "ひ" , 1 ) == 0 ) {
ans[0]='H';
ans[1]='I';
}

平仮名を使っているせいか関数strncmpあたりの判定がおかしくなってしまいます。例えばmozi配列を'ろゆき'にしてしまっても関数strncmpが0を返しえてしまいif文内の処理が実行されてしまします。
初歩的な質問だと思いますがアドバイスお願いします.
0313デフォルトの名無しさんNGNG
>>312
ひらがなは2バイト文字だ。
0314デフォルトの名無しさんNGNG
あんまり難しいこと考えずに文字列扱いたいならCStringとか使えば?
0315312NGNG
レスありがとうございます。
>>313
if(strncmp ( mozi , "ひ" , 1 ) == 0 ) {
の1を2にしたらできました。2バイトってのは解ってたんですがstrncmpの使い方が悪かったんですね。

>>314
初耳だったんですがぐぐってみたら便利そうですね。早速試してみます.
0316偏差値37NGNG
簡単なタブブラウザが作りたいのですが
ダイアログベースでも出来ますか?
0317デフォルトの名無しさんNGNG
プログラミング超・ド・素人ですがプログラムを組まなくならなければなりません。
まずどういうソフトを作りたいか概要を書きます。
パルスパターンジェネレーター(以下PPG)で任意のパターンを発生させるためにテキストデータから
そのPPGに合うデータを作らなくてはなりません。そこでテキスト→バイナリー変換のプログラムを作りたいのですが
MFCで組、GUI環境で波形を確認しながら作りたいです。
何からやったらいいですか?PPGのバイナリーデータはすでにあります。
環境
Win2000 VC++6.0 です。どうか教えてくださいです。
バイナリの勉強もしなければならないので何か参考になる書物、サイトもお教えください
0318デフォルトの名無しさんNGNG
入門書にtypeinfoというものがでてきて質問なのですが
書籍ではVC++6.0は/GRコンパイルオプションを指定しなければならないとあるのですがどのように指定するのか手順が載っておらず、どうにも困っています。
そのままコンパイルすると警告が出てしまい、実行するとエラーで強制終了してしまいます。
よろしければご指導おねがいします。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_34/code.txt ←ソースです。
警告:'typeid' が /GR- を使用したポリモーフィック型 'class Base' で使用されています; 動作結果は保証されません。 ←エラーメッセージです
0319デフォルトの名無しさんNGNG
/GR オプションは、実行時にオブジェクト タイプをチェックするコードを追加します。このオプションを指定すると、コンパイラが _CPPRTTI プリプロセッサ マクロを定義します。特に指定しない限り、このオプションはクリア (/GR-) されます。

開発環境でこのオプションを指定するには、[プロジェクト] メニューの [設定] をクリックします。次に、[C/C++] タブをクリックし、[カテゴリ] ボックスの [C++言語] をクリックします。

ラインタイム型チェックの詳細については、「C++ ランゲージ リファレンス」の「ランタイム タイプ情報」を参照してください。
0320デフォルトの名無しさんNGNG
書き忘れました、VC++6.0使用でwindowsXPsp1使用です。
0321デフォルトの名無しさんNGNG
>>319
ありがとうございます、実行できました
0322デフォルトの名無しさんNGNG
.NETの入門書見ながらVC++6.0で勉強してるんですが、
プロパティーウィンドウのメッセージの追加ボタン(?)
(この機能を使うと自動的に関数やメッセージハンドラが追加されるらしい)
が見当たりません。6.0でやるにはどうしたらいいですか?
0323デフォルトの名無しさんNGNG
>>322
VC++6では、ClassWizardと呼ばれる機能です。
0324323NGNG
>>322
ttp://www.net24.ne.jp/~kenji/lecture/beginner2.html
ご査収の程
0325デフォルトの名無しさんNGNG
>>323
ありがとうございます〜!
しかし、ClassWizardの項目が選択できない(灰色)のですが…
0326デフォルトの名無しさんNGNG
作成したプロジェクトの名前を途中で変更することって、できませんか?有ったら教えて下さい。
プロジェクトをまるまるコピーする事が多いので、どれがどんなプログラムか
分かりにくいです。
0327デフォルトの名無しさんNGNG
>>326
できる。project fileの内容を変更すればいい。
0328デフォルトの名無しさんNGNG
すいません。CListBoxについて教えてください。
やりたいことは、CListBoxへの1行ずつのログ出力です。
最新のログは常に一番下へ追加し、自動スクロールさせて
常に最新ログが見える状態にしたいのです。
また、リソース消費を抑えるために、ある一定以上の古い
ログは消去したいんです。

== ソース一部抜粋 ==
ulines++;
if(lines > 50){
m_list_log.DeleteString(0); …(1)
}
m_list_log.InsertString(-1, strLog);
m_list_log.SendMessage(WM_VSCROLL, SB_LINEDOWN, 0);
=============

上記のようにすると、(1)の処理でキャレットが一番上に
移動してしまいます。
常にスクロールバーが一番下になる方法ありませんか?
(最新が常に見える状態にする方法)
SetScrollPosとRedrawWindowの組み合わせでも出来なかったので
よい方法があれば教えてください。よろしくです。
0329デフォルトの名無しさんNGNG
m_list.AddString("(- -;)");
m_list.DeleteString(0);
m_list.SetCurSel(49);
0330328NGNG
>329
ありがとうございます。
みごと出来ました!
0331デフォルトの名無しさんNGNG
ファイルのプロパティを表示させる関数とかってありますか?
あったら何関数を使ったら良いのか教えてください。

よろしくお願いいたします。
0332デフォルトの名無しさんNGNG
特定のウィンドウのタイトルバーの高さのサイズを変更したいのですが、
できますでしょうか?
自分で擬似タイトルバーを作成すればできると思いますが、できれば、
標準のタイトルバーで実装したいです。
GetSystemMetrics(SM_CYCAPTION);
で、タイトルバーの高さが取得できるのは、分かったのですが、
タイトルバーの高さの設定方法は、分かりませんでした。

どうぞ、宜しくお願い致します。
0333デフォルトの名無しさんNGNG
>>331 SHMultifilePropertiesとか
0334デフォルトの名無しさんNGNG
>>332
できない。
自分でタイトルバーを書くのは、DrawCaptionと言うのがあるのでそれを使って書くしかないと思う。
0335& ◆oUgkzAA5Yw NGNG
あのう VC の _setjmp() と _setjmp3() の違いを
教えていただきたいのですが。。。
0336デフォルトの名無しさんNGNG
そんな関数あるんだ
たぶん一生つかうことないんじゃないか?
0337デフォルトの名無しさんNGNG
ウィンドウの上のコントロールにWS_TABSTOPの属性をつけたのに[TAB]で移動できないんですけど何が原因なんでしょうか
0338デフォルトの名無しさんNGNG
>>337
IsDialogMessage
0339デフォルトの名無しさんNGNG
>>338
IsDialogMessage(hWnd, &msg)
見たいにして使ってみたんですけど[tab]を押したときにフォーカスがどこかに行ってしまいました orz
調べてみたところモードレスダイアログによく使われているんですけど
親ウィンドウ(メインウィンドウ)に直接コントロールを置いているんですけどこの関数は使えるのですか?
0340デフォルトの名無しさんNGNG
MFCでFormViewを選択すると、
CFormViewの印刷サポートは使用できません
とでるんですが、印刷はできないんですか?
0341デフォルトの名無しさんNGNG
>>339
MSDN読めよ。
>Although the IsDialogMessage function is intended for modeless dialog boxes,
>you can use it with any window that contains controls, enabling the windows
>to provide the same keyboard selection as is used in a dialog box.
0342デフォルトの名無しさんNGNG
>>340
できますよ
0343340NGNG
>>342
(・∀・)グラッチェ!
0344元unixプログラマNGNG
VC++6上で、wininetを使ってHTTPSクライアントを書いています。

あるWEBサーバに接続したあとで、どうすれば、現在接続中の
クライアントのIPアドレスを知ることができるでしょうか。
IPアドレスが複数ついているマシンを使っているときはどうすれば。

0345デフォルトの名無しさんNGNG
すいません、ダイアルアップについて質問です。
VC++6.0(2000/XP)でRASDial関数を実行するとエラー(668)になります。
問題のソースは以下です。
===============
memset( &entry, '\0', sizeof( RASENTRY ) );
memset( &rasprm, '\0', sizeof( RASDIALPARAMS));
rasprm.dwSize = sizeof( RASDIALPARAMS);
dwSize = entry.dwSize = sizeof( RASENTRY );
lstrcpy( rasprm.szEntryName, lpRasEntryName);
dwret = ::RasGetEntryDialParams(NULL, &rasprm, &bret);
dwret = ::RasGetEntryProperties( NULL, rasprm.szEntryName, &entry, &dwSize, NULL, NULL );
lstrcpy( rasprm.szPhoneNumber, entry.szLocalPhoneNumber );
dwret = ::RasDial( NULL, NULL, &rasprm,NULL, (void *)&RasFunc,&m_hrasconn);
===============
ちなみに、ユーザ名、パスワード、電話番号は取得できています。
エラー情報から接続スピードを下げるとかそんなことが書いてありますが
普通にrasdaialで繋がるので、プログラム的に問題があると思っています。
何か設定(処理手順)で見落としているんでしょうか?
わかる方おりましたら教えてください。
よろしくお願いします。
0346339NGNG
解決しました、コントロールにWS_EX_CONTROLPARENTを指定していたので動作がおかしかったようです
ありがとうございました!
0347デフォルトの名無しさんNGNG
Intellisenceが働かない関数があるのですが、それはしかたのないことなのでしょうか?
どこかを設定すればよかったりするのですか?
0348デフォルトの名無しさんNGNG
>>347
*.ncbのファイルを削除するとよかったりする
0349デフォルトの名無しさんNGNG
VisualCでファイルを選択して読みこんだりできますよね?
例えば、あるフォルダFolder1にName1.txtとかName2.txtとかってあるのを
1つ選択するみたいな。

じゃあ、こんなことできますかね?
あるFolder1に3つのテキストファイルa.txt, b.txt, c.txtに対して
a.txtをひらくと残りのb.txt, c.txtも読みこめるようなことってできます??
フォルダFolder1, Folder2, ...というふうにフォルダがたくさんある中で、
これら全てのフォルダの中にa.txt, b.txt, c.txtといった3つのファイルがあるとします。
0350 ◆FIcNi4f8js NGNG
>>349
マルチにつきレス禁止
0351 ◆FIcNi4f8js NGNG
>>344
複数IPが割り当てられたクライアントの場合は
接続に使われた1つ分のIPしか分からない。
0352デフォルトの名無しさんNGNG
VC++.netでSQLデータベースにアクセスするのに最小限必要なソースとはどのようなものでしょうか?


というか、
CDatabase を使ってOpen()をやるのだろうと思ったのですが
"afxdb.h"をインクルードするだけで

error LNK2019: 未解決の外部シンボル __beginthreadex が関数 "public: int __thiscall CWinThread::CreateThread(unsigned long,unsigned int,struct _SECURITY_ATTRIBUTES *)" (?CreateThread@CWinThread@@QAEHKIPAU_SECURITY_ATTRIBUTES@@@Z) で参照されました。
error LNK2019: 未解決の外部シンボル __endthreadex が関数 "void __stdcall AfxEndThread(unsigned int,int)" (?AfxEndThread@@YGXIH@Z) で参照されました。


何が問題なのでしょうか?
0353デフォルトの名無しさんNGNG
一面の菜の花 
一面の菜の花
一面の菜の花
一面の菜の花
一面の菜の花
一面の菜の花
一面の菜の花
微かなる麦笛
一面の菜の花

上の山村暮鳥の詩を表示するプログラムをできるだけ少ない文字数で
つくりたいんですがどうしたらいいですか?
0354デフォルトの名無しさんNGNG
ATOMってなんですか?
0355デフォルトの名無しさんNGNG

int i=0;
while(i<7){
if(i==6){
printf("微かなる麦笛\n一面の菜の花");
break;
}
printf("一面の菜の花\n");
i++;
}
0356デフォルトの名無しさんNGNG
>>355
for(int i=0; i < 7; ++i)
printf("一面の菜の花\n");
printf("微かなる麦笛\n一面の菜の花");
0357デフォルトの名無しさんNGNG
for(int i=0; i < 9; ++i) {
if(i==7)
printf("微かなる麦笛\n");
else
printf("一面の菜の花\n");
}
0358デフォルトの名無しさんNGNG
#define a "一面の菜の花\n"
#define b "微かなる麦笛\n"
for(int i=0;i<7;i++)
printf(a);
printf(b a);
0359デフォルトの名無しさんNGNG
VCと関係ないのに釣られるなよ
0360デフォルトの名無しさんNGNG
>>352
MFC?
ウイザード使ってないのか?
0361デフォルトの名無しさんNGNG
一面の菜の花 一面の菜の花 一面の菜の花  
一面の菜の花 一面の菜の花 一面の菜の花
一面の菜の花 一面の菜の花 一面の菜の花
一面の菜の花 一面の菜の花 一面の菜の花
一面の菜の花 一面の菜の花 一面の菜の花
一面の菜の花 一面の菜の花 一面の菜の花
一面の菜の花 一面の菜の花 一面の菜の花
微かなる麦笛 雲雀のお喋り 病めるは昼の月
一面の菜の花 一面の菜の花 一面の菜の花

すいませんスレ違いみたいなんですけどついでに上の詩もいいですか?
  
0362デフォルトの名無しさんNGNG
#define a "一面の菜の花 "
for(int i=0;i<7;i++)
printf(a a a +"\n");
printf("微かなる麦笛 雲雀のお喋り 病めるは昼の月\n");
printf(a a a);
0363デフォルトの名無しさんNGNG
>>361
質問する前にROMっとけ
そういう質問向きのスレが見つかるまで質問するな
0364デフォルトの名無しさんNGNG
LINK : fatal error LNK1181: 入力ファイル "dinput8.lib" を開けません

ビルドするとこんな↑エラーが出るのですが、どうすればいいのですか?
0365デフォルトの名無しさんNGNG
>>360
コンソールアプリケーションです。

新規作成→プロジェクト→win32プロジェクト→
アプリケーションの設定→コンソールアプリケーション
0366デフォルトの名無しさんNGNG
>>364
dinput8.libでぐぐれば一発
0367デフォルトの名無しさんNGNG
MFCでのプログラムを昨日はじめたばかりの初心者です。
SDIでスケルトンを生成し、プログラムを開始したはいいものの
マウス関連処理で困っています。

マウスのスクロールボタン(真ん中)を押して、
イベントを発生させたいのですが、クラスウィザードでメッセージを見ても
それらしきものがありません。(スクロールはありますが)
CView::OnMButtonDown を手動でインプリメントしたのですが、
機能はしてくれませんでした。
この場合、どのように対処したらよいでしょうか?
よろしくお願いします。

開発環境:VC6.0, WinXP Pro
0368デフォルトの名無しさんNGNG
>>367
ハンドラの追加でフィルタを「ウィンドウ」にすれば出てくる。
0369367NGNG
わかりました!
ありがとうございました!
0370352NGNG
VC++.netでSQLデータベースにアクセスするためには何か設定が必要なのでしょうか?
どこ調べても簡単なソースだけ書いて
こうすればSQL操作ができるとかあって何か設定が必要であるかなんかはわからないんですが

SQLサーバはすでに動いています。
ユーザとデータベースも作ったのでアクセスはできると思うのですが


String *query = "SELECT * FROM table1";
SqlConnection *sql = new SqlConnection();
sql->ConnectionString="server=localhost;database=database1";
sql->Open();   
SqlCommand *sqlCommand = new SqlCommand(query, sql);


sql->Openの時点でSystem.Data.dllのエラーがどうとか
この方法以外でもっとシンプルでわかりやすい方法があればそちらを使いたいのですが.
localhostのところを実際のIPアドレスに変えてもだめです
0371デフォルトの名無しさんNGNG
SP6についての質問です。

今日、今更PS6が出てるのに気付いてあわてて導入したんですよ。
構造体の要素を変更しても、入力候補の方で更新されないバグが直るかなー。
ぐらいの気持ちで入れたんです。

それなのに適用後、とりあえず確認のためと思い、作成中のプログラムをコンパイルしてみたら
何故かコンパイルエラーが出てしまいまして・・。

stdarg.h(48) : fatal error C1001: 内部コンパイラ エラー
(コンパイラ ファイル 'msc1.cpp', 行番号 1794)

というエラーが、2回でてしまうのですよ。
その2つが指す行は共に同じ場所で、stdarg.hの

typedef char * va_list;

という場所です。
ここから、恐らく可変長引数の周りでなにかしらの不具合が起こっていると思い、可変長引数を
ひとまずコメントアウトしてみたら(可変賞引数を使った関数は今後の為に作っておいたのですが、
メインプログラムではまだ未使用な状態でした。)今度は例のエラーが出る回数が3回に増えてしまいました。
お手上げ状態です。(´・ω・`)

尚、他のプログラムも複数試しましたが、それらはどれも問題なく動きました。
よりによって数ヶ月かけて書いてるプログラムがコンパイルエラーなのですよ(つд`)

どなたか対処法をご存知の方がいらっしゃいましたら、どうかご教授ください。
よろしくお願いします。


0372デフォルトの名無しさんNGNG
多重継承についての質問なんですが、
階層の深さとかに限界があるのでしょうか?
VC++(.NET 2002)では、コンパイルはとうるのですが、ただしく動作をしません。
メモリへの不正アクセスのようなエラーがでます。
しかし、まったく同じコードをIntelC++ですと問題なく動作します。
なにがご存知でしたら教えてください。
0373デフォルトの名無しさんNGNG
C1001の場合は、エラー発生個所と問題の個所に関連が無い事も多いよ。

テンプレートクラスの中にネストしたテンプレートクラスを作ったりすると、
デバッグモードでのみSTLのヘッダでエラーが起こったりする場合があるし。
もちろん、該当クラスが依存しているところでSTLを利用していなくても。
0374デフォルトの名無しさんNGNG
多重形状のエラーですが、0xC0000005がでます。
class A

class B virtual public A

class C virtual public A

class D virtual public B, virtual public C

class E virtual public B, virtual public C

class F public D, public E
というような継承をしています。
class Fから class Aの関数をコールしている場所でエラーが
発生します。
よろしくお願いします。

0375371NGNG
自己解決致しましたので報告します。

コンパイルモードをデバックモードにしたら正常にコンパイルできたので、
リリースモードでリビルトしてみたところ、正常にコンパイルできました。
気が動転して、足元を見損なっていました。
お騒がせして申し訳ありませんでした(´・ω・`) < こんなことに2時間費やしちゃったよ。

>>373
レスありがとうございました。
1001という数字が少しトラウマになりました(´・ω・`)
0376デフォルトの名無しさんNGNG
星野仙一
0377デフォルトの名無しさんNGNG
おとといM$のサイトからC#の評価版をおとしてみた。
たとえば「Console.」を打てばその次に来る候補が
でていき長い物やよく使わないメソッドなどは大変
楽であった。このような機能はVISUAL c++ でも
搭載されているの?インテリセンス?だったっけ。
0378デフォルトの名無しさんNGNG
もちろん。
入力補完機能が付いていない開発環境は
今では見向きもされないだろう。
0379デフォルトの名無しさんNGNG
>>378
お前は、今、Del厨犬厨Java厨等、様々な厨を敵に回した。
0380デフォルトの名無しさんNGNG
Delphiの開発環境って入力補完機能無いの?
JavaでもEclipseくらいならあるんじゃないの?無いの?
0381デフォルトの名無しさんNGNG
>>379
まじで?!ネタですか?
0382デフォルトの名無しさんNGNG
>>380
弁解しても無駄。
俺がお前の立場なら一人では出歩かない。
0383デフォルトの名無しさんNGNG
へいきへいき Visual J++があるよ
0384デフォルトの名無しさんNGNG
ただの入力補間ではなくて、クラスやメソッド名を打ち
込むときに終わってからではなく数文字打ているときに
候補一覧が出てくる素早さや、何のショートカットキーを
使わず自動的にとまったところでも出てくるとこがいい。
あとEMACSキーカスタマイズがついてたこと。これは俺に
とっては夢のようだ!ちなみにこれはC#トライアルバージ
ョンでC++はショートカットキーを押さないと候補が出てこ
なかった。
0385デフォルトの名無しさんNGNG
あるプログラムでデバッガを使用しようとするとSTRSTR.ASMのパスを入力してください と出ます。
そして自分にはまだ理解できない混合モードになってしまいます。
少し前までは出ていなかったのでテキスト形式のソースプログラム上で一行ずつ実行など行えていました。
そして他のワークスペースのプログラムではデバッガはいつも通り使用できます。
混合モードとは何か、こんなダイアログが出たときどうすればいいか調べたのですがわかりませんでした。
Visual C++6.0を使っています。こんな質問ですいません。よろしくおねがいします。
0386デフォルトの名無しさんNGNG
>>385
VC6でもデバッグモードなら呼び出し履歴から
エラーの発生箇所がわかるんでない?

>混合モードとは何か、こんなダイアログが出たときどうすればいいか調べたのですがわかりませんでした。
余力があればアセンブラについて勉強すると幅が拡がるかモナー。
0387デフォルトの名無しさんNGNG
>>385
自分で書いたソース以外の所で止まってるから
0388デフォルトの名無しさんNGNG
自分で書いた以外ソース以外が、表示されている時
誤って変更&保存しても、大丈夫ですか?
0389デフォルトの名無しさんNGNG
> 自分で書いた以外ソース以外
混合モードで表示されてるコードを編集してしまって大丈夫かってこと?
それだったら、混合モードじゃ編集は出来ないと思うぞ。
0390デフォルトの名無しさんNGNG
>>389
混合モードで、アセンブラが表示されるんですが、
その時ソースも開けるようになって(例えばwinfrm.cpp)
そこでは、編集も出来てしまうんです・・・
これいじると、取り返しの付かない事になりそうで・・・
どうなんでしょう?

// This is a part of the Microsoft Foundation Classes C++ library.
ちなみに、一行目には、このようにコメントされています。
0391デフォルトの名無しさんNGNG
流れ図書いたことある人っている?
資格試験の問題と、教本でしか見たことない
0392デフォルトの名無しさんNGNG
>>391
http://www.staedtler.co.jp/products/06_template/01-other-template/index.html
昔はこういうテンプレートと字消し板使ってた。
Windowsは手続き型じゃないし
0393352NGNG
質問が流れて
>>352
誰か何かヒントを下さい〜
0394デフォルトの名無しさんNGNG
よく分からんがとりあえず
#include <process.h>
をインクルードしてみろ。
それと、プロジェクトの設定のC/C++タブのところにあるコンボボックスから
コード生成を選び、マルチスレッド対応のランタイムライブラリを指定して
リビルドしてみろ。
解決しなかったらまたいらして下さい。
0395デフォルトの名無しさんNGNG
>>352
本も見ないでやってるとは、超初心者か?超ベテランか?
おそらく仕事でやってるんだろうけど、
本の値段より時給の方がはるかに安いのか?
0396デフォルトの名無しさんNGNG
>>394
優しさをうまく表現できない不器用な人
0397デフォルトの名無しさんNGNG
CPUがSSE3に対応しているかどうかをプログラム中で取得したいのですが
どうしたら良いのでしょうか?
よろしくお願いします。
0398デフォルトの名無しさんNGNG
>>397
アセンブラのcpuid命令で取得出来たと思う。
0399デフォルトの名無しさんNGNG
MFC(VC6で作成)の質問です。
スプリットウィンドウを CSplitterWnd で複数作成して、
そのスプリットウィンドウのどこかでイベントを発生させたら、
すべてのスプリットウィンドウを更新するにはどうしたらいいんですか?
0400デフォルトの名無しさんNGNG
>>390
つーかwinfrm.cppを書込み禁止にしておけばいいし。
そうじゃなくても、あとから上書きすればいいし。
また、編集できるつっても、どーせアセンブラ言語の行は
変えられないんでしょ?
変えられたとしても、C++のソースに反映されないでしょ?
反映されたとしても、winfrm.cpp をまるごと上書きすればいいし。
また、編集
0401デフォルトの名無しさんNGNG
>>399
UpdateAllViews
0402399NGNG
>>401
ありがとうございます。
こんな関数があるんですね。
これは C***View でマウスとかの取得をしても
できるものなんですか?
C***Doc.cpp の何処かに記述するんですよね?
結局やりたいことは、OpenGL の描画を同期させたいのですが。
連続質問で申し訳ありません。
0403デフォルトの名無しさんNGNG
>>399
GetDocument
0404385NGNG
ありがとうございます。レス遅れました

>>386さん 

>VC6でもデバッグモードなら呼び出し履歴から
エラーの発生箇所がわかるんでない?

そうなんですかぁ。呼び出し履歴というものをちょっと調べてみます。

>余力があればアセンブラについて勉強すると幅が拡がるかモナー。

そうなんですか。まだまるっきしCしか使えないのでちょっとしたら手を出したいと思います


>>389さん

>自分で書いたソース以外の所で止まってるから

これはそういうことなんですかー。デバッガがドコで停止したか調べてみたら
strstrをあるワークスペースAのプログラムから呼び出そうとしたときでした。
他のワークスペースBのプログラムでstrstrを実行しても平気なので、
Aのstrstrに関係する内容をいつの間にか変更していたのでしょうか。
新しくワークスペースBを用意してAの物を持ってきたら
Bではデバッガが止まる事はありませんでした。

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



0405399NGNG
>>403 さん
できました!感謝です!
0406デフォルトの名無しさんNGNG
コピペミスって
class foo : public foo {
になったクラスのメンバ関数内でインテリセンス起動→VC6いきなり落ちる。
たのむよ〜。原因がわからなくてもう少しで最インスコしてたよ。
0407デフォルトの名無しさんNGNG
手持ちのVC6で試したところ
スマートポインタ(std::auto_ptrやboost::shared_ptr)の->演算子にはインテリセンスが効きません
最新のVCでも同じでしょうか?
0408デフォルトの名無しさんNGNG
いえ、VC7.1では、しっかり表示されます。
0409407NGNG
>>408
おお。すばらしい。
そろそろ買い換えるとするか。
0410& ◆R7PNoCmXUc NGNG
__FILE__ マクロを wchar_t 型にできないでしょうか。。

void DebugAssert(bool ok, wchar_t* file, int line);
#define ASSERT(b) DebugAssert((b), __FILE__, __LINE__)

こんなんしたいんですけど。。
0411デフォルトの名無しさんNGNG
>>407
プロジェクトにヘッダを追加すれば表示されるんじゃないの?
0412デフォルトの名無しさんNGNG
>>410
#define TOWSTR(s) L##s
TOWSTR(__FILE__)
0413デフォルトの名無しさんNGNG
質問です。BitBlt関数で描画が上手くいきません。
背景の上に絵を表示させたいのですが、張り付けた部分が
下の背景の色で塗りつぶされます。
StretchBltとBitBltを混ぜて使ってます。AlphaBlendも
後から使おうと思ってます。混ぜて使うとき、注意すべき点は
何か有りませんでしょうか。多分そこから失敗してると思うので。
0414デフォルトの名無しさんNGNG
質問:
VC++5.0 の英語版はどこで買えますか?
御存知のかたいらっしゃったらご教示下さい。
0415352NGNG
管理ツール→データソース→追加 が必要だったとは
これで一応SQLデータソースに接続でき、先の問題は解決しました。

しかし...

CDatabase data;
try{
data.OpenEx( NULL, 0);
}catch(CDBException* e){

このようにして手動でデータソースを選ぶと、正常に動作します。
このときのdata.GetConnect()の内容を控え

ダイアログを出さないようにしたいのでこのようにしました。
data.OpenEx( connectstring, CDatabase::noOdbcDialog );

しかしdata.GetConnect()で取れる文字列を完璧にコピーして入れても

CDBExceptionが
「データソース名および指定された規定のドライバが見つかりません。」

noOdbcDialogを指定した場合のみ上の例外が発生します。
これは何故なのでしょうか
0416デフォルトの名無しさんNGNG
>>413
それだけじゃちょっと厳しい気がするなあ。
とりあえず何処で描画してるかってのがまずわからんと。
0417デフォルトの名無しさんNGNG
>>413
どうせMERGECOPYとかにしてるんだろうよ。
マスクとかその辺から勉強し直せよ。
0418407NGNG
>>411
だめでした。
インテリセンスがオペレータオーバーロードもしくは、テンプレート含みには
対応していないと思われます。
0419407NGNG
と思って簡単なサンプルで試したらちゃんと表示されているじゃないかぁぁ

struct S { int a; };
template<typename T> struct B {
 T *v;
 T * operator-> () { return v; }
};

B<S> b;
b->                 // インテリセンスが効く
std::auto_ptr<S> p (new S);
p->                 // 効かない

ClassViewでauto_ptrをみるとメンバに THROW0() や初期化子の _Ptr() がある!
0420デフォルトの名無しさんNGNG
本に付属していたサンプルプログラムを実行してみようとしたのですが、
旧バージョンで生成されたプロジェクトで、
新しいファイル形式に変更してビルドしてみても
proto.obj : error LNK2001: 外部シンボル ""int __cdecl D3Z_CreateDirectDraw
(struct HWND__ *)" (?D3Z_CreateDirectDraw@@YAHPAUHWND__@@@Z)" は未解決です
….\Debug/proto.exe : fatal error LNK1120: 外部参照 5 が未解決です。
とエラーが出てしまいます。
どのサンプルを実行してみても同じ状態になってしまい、
一歩も進むことが出来ません。どうすればいいのでしょうか。
0421デフォルトの名無しさんNGNG
ddraw.libをリンクすように設定し直せ
0422デフォルトの名無しさんNGNG
>>420
D3Z_CreateDirectDrawのあるライブラリをリンクして下さい。
0423デフォルトの名無しさんNGNG
あ、421だけど多分違うな・・まあ該当するlibってことで。
0424デフォルトの名無しさんNGNG
ファイルを読み込んで、文字とキーワード(unit 30)
のような文字列をfgetsで読み込んで返した文字列の中からスペースの
後のキーワードを見つける方法を教えてください。
0425デフォルトの名無しさんNGNG
読み込んで返した文字列の中からスペースの位置を
見つけてその場所より後の部分を抽出とか
色々
0426デフォルトの名無しさんNGNG
>>424
CommandLineToArgvW()を使ってみるとか
0427デフォルトの名無しさんNGNG
ありがとうございました
0428デフォルトの名無しさんNGNG
>>425
スペースの見つけかた教えてください。
>>426
それってmain関数ですか?
0429デフォルトの名無しさんNGNG
>>428
VisualC++やる前にCかC++を勉強した方がいい。
0430デフォルトの名無しさんNGNG
ごめんなさい
勘違いしてました。
自分Cの話でした!
0431デフォルトの名無しさんNGNG
CListViewの特定のカラムにプログレスバーを表示したいんだけど
どうすればいいの?
0432デフォルトの名無しさんNGNG
CListViewの子としてプログレスバーを作る。
LVM_GETITEMRECTとかLVM_GETITEMPOSITIONとかで
プログレスバーを作るべき座標は得られる。
0433420NGNG
お答えいただいて有難うございます。
どうやらDirect3z.libに有るらしいのですが、リンクの方法が解りません。
プロジェクトの設定のリンクからオブジェクト/ライブラリモジュールに
Direct3z.libと入れてみても以前のエラーメッセージと、
link.exe の実行エラーというのが表示されてしまいます。
連続質問で申し訳ありませんが、どうしたらいいのでしょうか。
0434デフォルトの名無しさんNGNG
>>433
link.exe の実行エラーと言われても、エスパーじゃないのでわからん。
0435420NGNG
ただlink.exe の実行エラーとだけ表示されて、他には何も書いて無いんです。
ツール/オプションのディレクトリタブからも
Direct3z.libの有るファイルを設定しましたが、
依然としてエラーが出てしまっています。
…諦めて新しい本を買った方が良いでしょうか?
0436デフォルトの名無しさんNGNG
>>433
もうDirect3z.libのフルパスを書いちゃえよ
0437420NGNG
D:\Direct3D Programming Guide Book\Direct3Z\Direct3z.lib
です。度々すいません。
0438デフォルトの名無しさんNGNG
#pragma comment(lib, "D:/Direct3D Programming Guide Book/Direct3Z/Direct3z.lib ")

を、ソースのファイルのどっかに入れてみたらどうや?
0439420NGNG
>>438
有難うございます。ですがやはりリンクで躓いてしまいます。
0440デフォルトの名無しさんNGNG
>>435
本についてるのはサンプルだから、そのまんま使う必用はない。
自分で新規プロジェクトの作成から順番にやっていくのが無難。
それができないと自作のプログラムは作れない。
0441デフォルトの名無しさんNGNG
>>420
ぐぐれば、答えが出てるような気が......
0442デフォルトの名無しさんNGNG
VC++5.0 はもう手に入らないのですか?
サポートの対象外でも構わないから、なんとか手に入れたいのですが。
出来ることなら英語版が好ましいです。
0443デフォルトの名無しさんNGNG
>>442
Yahooオークションとか中古ソフト屋を探してみれ
0444デフォルトの名無しさんNGNG
ttp://www.emsps.com/oldtools/ms.htm
0445デフォルトの名無しさんNGNG
vc++に限った質問ではないかもしれませんが、ここで質問します。
SDK, vc++6.0です。

以下のように構造体変数を宣言しました。
enum{
  SET_A,
  SET_B,
  SET_C
} state = SET_A;

stateがSET_Aのときには0を、SET_Bのときには1を、SET_Cのときには2を返す
ような関数は存在するでしょうか?よろしくお願いします。
0446デフォルトの名無しさんNGNG
>>445
それは構造体じゃないし、そこで関数使う必用ないし、スレ違い
0447デフォルトの名無しさんNGNG
>>445
state == SET_A ? 0 : state == SET_B ? 1 : state == SET_C ? 2 : -1;
0448デフォルトの名無しさんNGNG
>>445
enumは0から順番に値を割り当てるんじゃなかったっけ?
0449デフォルトの名無しさんNGNG
DDV 機能を利用してエディットボックスの数値入力範囲を設定しているのですが、
入力範囲を 0 〜 int の最大値2147483648を指定し、入力すると範囲外の数値として
再入力を求められてしまいます。

何が間違っているのか教えていただけませんでしょうか?
環境はVS2002です
0450デフォルトの名無しさんNGNG
MS固有の__declspec(selectany)はどのバージョンから対応しているとか
そういう情報はどこかに載ってないでしょうか?
例えばクラスを作るとヘッダに自動的に挿入されるこれ。

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

1000より新しいバージョンで対応してるんだなとわかります。
selectanyは_MSC_VERがいくつ以上なら対応しているんでしょうか?
0451デフォルトの名無しさんNGNG
>>449
数字いろいろ変えてやってみろ
0452デフォルトの名無しさんNGNG
>>449
intの最大値は2147483647だ。
0453デフォルトの名無しさんNGNG
>>448
しかも最初の一個だけ明示的に与えてやれば、
あとはインクリ
0454デフォルトの名無しさんNGNG
0-2147483647までの
2147483648個
0455デフォルトの名無しさんNGNG
金enum元大統領
0456デフォルトの名無しさんNGNG
なんでINT_MAXを使わないの?
しかもintは実装依存…もしVC++以外にソースを持っていくような事が
あったら困ることがあるから最大値ぎりぎりまで使うならlong intに
した方がよいです
0457デフォルトの名無しさんNGNG
もしくはint32_t
0458デフォルトの名無しさんNGNG
DDV使ってるソースを、VC以外に持っていくことはないだろ w
0459デフォルトの名無しさんNGNG
>>451 >>452 >>454

ありがとうございました、個数と最大値を見間違えていました・・・

>>456

うう、知りませんでした
ご指摘ありがとうございます
0460デフォルトの名無しさんNGNG
>>458
将来VC++のintのビット長が変わる、なんていうことないとも限らないし、
もしそうなったら、それだけで多くの箇所を変更しなければならなくなる。
少しでも危険が考えられることは、簡単な事であればなるべく安全な物に
置き換えるのがよい。
0461デフォルトの名無しさんNGNG
64bit環境でもVC++のintは32bitだからなあ。
そう心配すんなよ。
0462デフォルトの名無しさんNGNG
そもそもマジックナンバーは良くない。
0463デフォルトの名無しさんNGNG
互換性よりintの最大値ということをアッピールするためにINT_MAXを使う
という意味の方が重要かもしれん。
0464デフォルトの名無しさんNGNG
>>462
DDX/DDVの設定ダイアログで、最大値・最小値にマジックナンバー以外を
入力出来るのかい?
0465デフォルトの名無しさんNGNG
>>464
出来なくても適当な値入れて手作業で修正すればよかろう。
0466デフォルトの名無しさんNGNG
>>465
ここは初心者スレだぞ。
偉そうなことだけ言ってないで、何処を修正すればいいか教えてやれよ。
0467デフォルトの名無しさんNGNG
>>466
DoDataExchangeメンバ関数のDDV_MinMaxIntのところ。
0468デフォルトの名無しさんNGNG
>>466
いくら初心者でも分かりそうなもんだが
0469デフォルトの名無しさんNGNG
CXxxDoc 内で定義したメンバ変数 y に
((CXxxDoc*)GetDocument())->y
でアクセスできるのはなぜですか?
メモリ的にどうなってるんですか?
0470デフォルトの名無しさんNGNG
なぜなぜな〜に?
0471デフォルトの名無しさんNGNG
最近、BorlandのつかえないコンパイラからVCに乗り換えた初心者です。
Viewについての質問です。
Viewは基底クラスをいくつかのViewから選択できますよね
ですが、エクセル見たいな入力可能なGridをViewに選択することは
できないのですか?
0472デフォルトの名無しさんNGNG
ListViewでがんがるか、ActivXとかでMSDBGridを使う
0473デフォルトの名無しさんNGNG
いまウインドなしのdllからウインドを生成したいのですが、
WNDCLASSにセットするHINSTANCEはどうすれば取れるのでしょう?
そもそもこれは何のためにセットするのでしょうか?
あとでアイコンとか取得したいときに必要になるからGetWindowLongで取得できるように
WNDCLASS作成時にセットするだけですか?もし使う予定がないならNULLでよいですか?
それとも必要ですか?もしそうならdllのようにクライアントアプリケーションのプロセス内にロードされる
場合、クライアントアプリケーションのHINSTANCEを使っても良いのですか?

いろいろお聞きしますがよろしくお願いします。
0474デフォルトの名無しさんNGNG
>>473
DLL側のHINSTANE/HMODULE。
これの意義はウィンドウクラスの所有権を把握するために使うのだったと思う。
(WindowsはEXEがアンロードされるときにそこが所有するウィンドウクラスを自動的に破棄するようになっている。DLLのクラスは9x系だけ自動破棄)

>WNDCLASSにセットするHINSTANCEはどうすれば取れるのでしょう?
取り方はDllMainでグローバル変数にコピーしておくか、あるいはDllMainでウィンドウクラスを作るのが一般的だと思う。
0475デフォルトの名無しさん NGNG
質問 VC6.0を使用しているのですが、
templateのアロー演算子のoperatrorのオーバーロード
がうまくいきません。
そういうものなのでしょうか?
template <class T>
class Hoge
{
public:
T* operator->() { return m_p; }
private:
T*m_p;
};
0476475NGNG
”の”がいっぱい。。
0477デフォルトの名無しさんNGNG
CreateCompatibleDC(NULL)と
CreateCompatibleDC(hdc)とでは具体的にどう違いますか?
0478デフォルトの名無しさんNGNG
>>475
どう上手くいかないんだ?
0479デフォルトの名無しさんNGNG
>>477
hdcがプリンタDCだったり情報DCだったりしたときに出来上がるDCの形式が違う
0480デフォルトの名無しさんNGNG
そもそもCreateCompatibleDC(NULL)
って、どんな DC が作られるの?
何のコンパチを作るのよ?
0481デフォルトの名無しさんNGNG
>>480
ヘルプも読んでないくせに態度がでかいぞ。
0482デフォルトの名無しさんNGNG
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
          :
   char d=(TCHAR)pMsg->wParam;
   if (d == 'A') …
   if (d == ??)

バックスペースが押されたか判断したいんですが、
??の部分はどの様に記述すれば良いのでしょうか?

0483デフォルトの名無しさんNGNG
"BS" もしくは "BackSpace"
キーボードによって違うから気をつけろ
0484デフォルトの名無しさんNGNG
VK_BACK
0485482NGNG
ありがとうございます
0486デフォルトの名無しさんNGNG
http://www.comrade.co.jp/ftp/pg1/manual/VKeys.htm
0487デフォルトの名無しさんNGNG
>>486
お気に入りに登録しました
0488デフォルトの名無しさんNGNG
>482
if (d == 'A') … <- 右親指を立ててる顔に見えなくもない。
0489テストNGNG
d='A';
0490デフォルトの名無しさんNGNG
d=(^ _^)
0491テストNGNG
d=(T_T);
0492デフォルトの名無しさんNGNG
d(^-^)b
0493テストNGNG
q=('A');
0494デフォルトの名無しさんNGNG
UTF-8でXMLファイルを出力したいんですがどうしたらいいんでしょうか?

fp=fopen("〜.xml","a");
char * pstr = sjisToUtf8("変換する文字");
fput(pstr,fp);

ってな感じでやってます。
0495デフォルトの名無しさんNGNG
,"a")オイオイマジカヨ
0496473NGNG
>>474
ありがとうございました。助かりました。
0497デフォルトの名無しさんNGNG
vc++6です。
友人から、「WinProcって何?」と訊かれて言葉に詰まってしまいました。
どのように説明すれば良いのでしょうか?
よろしくお願いします。
0498デフォルトの名無しさんNGNG
qsort()に渡すような感じで
RegisterClass()に渡すためのもの
0499デフォルトの名無しさんNGNG
自分のIPアドレスを取得したいんですけど、
自分のIPアドレスを取得する関数って何ですか?

よろしくお願いします。
0500デフォルトの名無しさんNGNG
>>499
逝ってよしです
0501デフォルトの名無しさんNGNG
またこの質問か
0502デフォルトの名無しさんNGNG
GetIpAddress()
0503デフォルトの名無しさんNGNG
>>494
MultiByteToWideChar() で SJIS -> UTF-16
WideCharToMultiByte() で UTF-16 -> UTF-8
0504デフォルトの名無しさんNGNG
それって文字コードを変換するやつとちゃうんか?
>503
0505デフォルトの名無しさんNGNG
>>504
そうですが何か?
0506デフォルトの名無しさんNGNG
コンボボックスのストリング型をchar型に直したんだけど、
このchar型をさらに16進表示にしたいのです。

CString writeblock;
m_COMBO_writeblock.GetWindowText(writeblock);
char wb[1];
strcpy(wb, writeblock);
char Write[13] = {・・,・・,〜, wb[1], ・・, ・・,}

こんな感じで
例えば、コンボボックスの04を0x04といった感じでwbに入れてやりたい
んですが、今のままだと、34となってしまいます。
wb[1]に04となるようにしたいのですが、分かりません。
どなたか良い方法教えてください。
0507デフォルトの名無しさんNGNG
about:blank
これがエクスフローラ開くとどうしても最初に立ち上がってしまう
これって治せるのかな?
0508デフォルトの名無しさんNGNG
>>507
とりあえず"エクスフローラ"の作者かサポートに質問
0509デフォルトの名無しさんNGNG
VC++6を使っています

質問なのですが、実行結果をテキストファイルに出力するには
どうしたらよいでしょうか?
100万個ほどの数値の統計を取りたいのですが、
DOSプロンプト上には最後の1000個ほどの結果しか残らないので
困っています。

初心者な質問ですが、よろしくお願いします。
0510デフォルトの名無しさんNGNG
こりゃまたずいぶん
0511デフォルトの名無しさんNGNG
stdout=fopen(hogehoge);
0512デフォルトの名無しさんNGNG
>>509
それだとメモリを増設しないといけないな。
スレ違いなのでここまで。
0513デフォルトの名無しさんNGNG
>>509
とりあえずデータがテキストファイルになれば良いのだったらリダイレクトが簡単.
例えばhoge.exeってプログラム名だったら
hoge.exe > hage.txt
って感じで入力すると,画面に出力されてたものがhage.txtに出力できますよ.
0514デフォルトの名無しさんNGNG
>>513
それはスレ違い。
ここはVC++のスレ。
0515509NGNG
こんなに早く質問に答えていただいてありがとうございます。
とりあえず>>513の方法で出来たので、しばらくはそれでいこうと思います。

何分、Cを始めたばかりの未熟者ゆえ・・・。変な質問しちゃって
すいませんでした。とても助かりました。
0516デフォルトの名無しさんNGNG
>>513
それは承知.ただまぁ509が解決する際の選択肢になればいいからね.
0517516NGNG
516は514へです.

>>515
使い難さを感じたら511あたりも検討してください.
0518デフォルトの名無しさんNGNG
>>514
VC++でリダイレクトを使ったらいけないのか?
0519デフォルトの名無しさんNGNG
VC++でソケット使えるからソケットプログラミングの話もここでいいですか?
0520デフォルトの名無しさんNGNG
>>518
リダイレクトはシェルの機能。
シェルスレでやれ。
0521デフォルトの名無しさんNGNG
>>519
ネットワークプログラミング相談室 Port10
http://pc5.2ch.net/test/read.cgi/tech/1090385857/l50
0522デフォルトの名無しさんNGNG
>>520
解決方法がスレ違いの内容だからって一言もそれに触れなかったら
質問者はいつまでたっても回答を得られないぞ。バカジャネーノ。
0523デフォルトの名無しさんNGNG
質問の解決を第一に考えようよ.(なんか,みなさん縦割好きだね.行政みたいだ.)
509に513は問題ないでしょ?
そのあと更に509さんがリダイレクトについて質問してきて
長くなりそうだったら誘導すればいいんだし.
0524デフォルトの名無しさんNGNG
プログラミング始める前にパソコンの使い方ぐらい覚えろよ。
CUIのプログラム作っててCUIが使えないんじゃ話しにならん。
0525デフォルトの名無しさんNGNG
そうだぞ、
ダブルクイックも出来ないで
プログラミングなんて100年早いわ。
0526デフォルトの名無しさんNGNG
>>524は初心者に対して偉そうにしたいだけ w
0527デフォルトの名無しさんNGNG
ダブルクィックって何?聞いたこと無いんだが…
0528デフォルトの名無しさんNGNG
ダブルクイック
ディスクトップ
ワーニング
アップリケーション
0529デフォルトの名無しさんNGNG
スッタク
0530デフォルトの名無しさんNGNG
VisualC++で.NETアプリケーションの開発をやるメリットって何かあります?
0531デフォルトの名無しさんNGNG
.NET対応アプリケーションを作れるというのが
メリットでは?
0532デフォルトの名無しさんNGNG
MC++ってSTL使えますか?
std::vector<CView*> VecView;
なんて書いたら怒られました
0533デフォルトの名無しさんNGNG
MC++ってなんだよ
VC++なら使えるぞ
0534デフォルトの名無しさんNGNG
ManagedC++だろ
0535デフォルトの名無しさんNGNG
Microsoft C++ に決まってるだろ。
0536デフォルトの名無しさんNGNG
クズばっか(w
0537デフォルトの名無しさんNGNG
俺様用のメモ

C言語なら俺に聞け! Part 91
http://pc5.2ch.net/test/read.cgi/tech/1095180315/l50
C++相談室 part35
http://pc5.2ch.net/test/read.cgi/tech/1093958200/l50
【初心者歓迎】C/C++室 Ver.9【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1094494997/l50
ぼるじょあがC/C++の宿題を片づけますYO! 31代目
http://pc5.2ch.net/test/read.cgi/tech/1095075678/l50
0538デフォルトの名無しさんNGNG
WM_COMMANDのwParamの上位ビットには何が記録されているのでしょうか?
入門書では下位ビットにコントロールやメニュー項目などの識別子が入っているとあるのですが上位ビットについては省かれていて非常に気になります。
0539デフォルトの名無しさんNGNG
>>538
The high-order word specifies the notification code if the message is from a control.
If the message is from an accelerator, this value is 1.
If the message is from a menu, this value is zero.
0540デフォルトの名無しさんNGNG
>>538
素でMSDN知らなそう
http://msdn.microsoft.com/library/
0541デフォルトの名無しさんNGNG
VC++.NET 2005 のβ版いれたらVC6.0のファイルの関連付けが全部ぶっ飛んでしまったのですが、
2005をアンインストールしても直りませんでした。
元通りにもどすにはVC6.0を再インストするか、手動で一つ一つ関連付けしていくしかないのでしょうか?
0542デフォルトの名無しさんNGNG
>>540
素でMSDNってどういうものなんでしょう。。。
0543デフォルトの名無しさんNGNG
Win32SDKの日本語に翻訳したお勧めの書籍を教えてください
0544デフォルトの名無しさんNGNG
>>506です。誰か教えてぇぇ
0545デフォルトの名無しさんNGNG
>>544
wb[1] = atoi(writeblock);
0546デフォルトの名無しさんNGNG
>545

うそつき
0547デフォルトの名無しさんNGNG
>>544
_tcstol(writeblock, NULL, 16);
0548デフォルトの名無しさんNGNG
ListView の特定のカラムにプログレスバーを入れたいけど
無理?
0549デフォルトの名無しさんNGNG
オーナードローしろ。
プログレスバーを配置する事もできるけど
リストアイテムの数だけ作る事になるから
何万ものウインドウを作る事になる。
0550デフォルトの名無しさんNGNG
>>548みたいな質問する初心者が
その程度のアドバイスでできたら
1年後は優秀なクラッカーになるだろう
0551デフォルトの名無しさんNGNG
>>548
つーか最近見たよね
その同じ質問
0552デフォルトの名無しさんNGNG
CWebBrowser2で表示したページが
NotFoundであることを取得するにはどうしたらいいでしょうか?
0553デフォルトの名無しさんNGNG
ウェブ CWebBrowser2 の検索結果のうち 日本語のページ 約 30 件中 1 - 10 件目 (0.21 秒)

予想される検索キーワード: Iwebbrowser2

Win32API 質問箱
... 17 名前: デフォルトの名無しさん 投稿日: 2001/06/04(月) 22:55 >>15 IWebBrowser2
を使えばできる。 18 名前: 17 投稿日: 2001/06/04(月) 22:55 VC持ってるなら、CWebBrowser2
のソース見れば?汚いけど。 19 名前: デフォルトの名無しさん ...
pc.2ch.net/tech/kako/991/991576947.html - 101k - キャッシュ - 関連ページ

IEコンポーネントを使い倒すスレ
... 使用している単純なサンプルなどあればいいのですが・・・ 26 名前:
デフォルトの名無しさん 投稿日: 2001/02/27(火) 15:25 ↑ CWebBrowser2
も使ってはいけないってこと? それなら、難しくて分からないや。 27 名前 ...
piza.2ch.net/tech/kako/982/982930049.html - 63k - キャッシュ - 関連ページ
0554デフォルトの名無しさんNGNG
VC7で無名namespaceの変数を使うと、入力補助(メンバとかの自動候補)や
型や引数のポップアップが出なくなるんですが、何か対処方法あります?
0555デフォルトの名無しさんNGNG
VC++.NETでSTLは使えないの?????
0556デフォルトの名無しさんNGNG
だ か ら 〜
ListView の特定のカラムにプログレスバーを入れたいけどどうすればいいの?
0557デフォルトの名無しさんNGNG
特定のカラムの上にプログレスバーを描画すればいいだけ
0558デフォルトの名無しさんNGNG
>>431>>432
0559デフォルトの名無しさんNGNG
APIを使用したwindowsプログラミングを学習中なのですがウインドウプロシージャのswith文でbreakを記述しないのはなぜなのでしょうか?
switch (message)
{
case WM_DESTROY:
// ウインドウが破棄されたときの処理
PostQuitMessage(0);
return 0;
default:
// デフォルトの処理
return DefWindowProc(hWnd, message, wParam, lParam);
}
↑こんな具合に。
C++を勉強していたときにはswithはbreakを記述しないとすべての処理を行ってしまうため、必ず記述するものだとあったのですが。。
0560デフォルトの名無しさんNGNG
>>559
returnしなければね
0561デフォルトの名無しさんNGNG
windowsプログラミングではswithでbreakの代わりにreturn 0が使用できると言うことでしょうか。
ブレイクとリターンでは意味合いが変わってくるような気もするのですが、どちらの手法を利用するべきなのでしょう?
0562デフォルトの名無しさんNGNG
>553
検索してもわからなかったから質問したんですけど
0563デフォルトの名無しさんNGNG
>>561
returnしないとDefWndowProc呼んじゃうんだよ、デフォルト処理したくない時はreturn
0564デフォルトの名無しさんNGNG
>>561
swithじゃなくてswitch break return のことなら C/C++スレへ
別にWindowsでもVC++特有の問題でもない。
0565デフォルトの名無しさんNGNG
>>561
これを追ってみるといい
#include <iostream>
using namespace std;
void hoge (int p) {
switch (p) {
case 0:
cout << "0" << endl;
return;
case 1:
cout << "1" << endl;
break;
case 2:
cout << "2" << endl;
case 3:
cout << "3" << endl;
break;
}
cout << "last" << endl;
}
int main () {
hoge (0);
cout << "----" << endl; hoge (1);
cout << "----" << endl; hoge (2);
return 0;
}
0566デフォルトの名無しさんNGNG
>>561
そもそもbreakとreturnの意味が違うってところまで分かってんならもう少し考えたら
分かるだろうよ。switch文ならbreakっていう決まりがあるわけじゃなくて、breakの機能
が必要だからそこに入れるってことだろ。
0567デフォルトの名無しさんNGNG
そんなことに熱くなるより>554も答えてくださいよ皆の衆
0568デフォルトの名無しさんNGNG
>>567
普通はそういうことがあっても気にしない。
気にする人は自分で解析するんじゃないか?
0569デフォルトの名無しさんNGNG
インテリセンスに頼るような奴は修行が足りない。
0570デフォルトの名無しさんNGNG
携帯普及率の増加に比例して電話番号を覚えられない人も増加しているのは有名な話。
0571デフォルトの名無しさんNGNG
>>565
わかりやすいコードありがとうございます。
動かしてみたらリターンとブレイクで処理に違いがあることがわかりました。
0572デフォルトの名無しさんNGNG
>>570
何の関係があんだよ。おまいバカだろ(w
0573デフォルトの名無しさんNGNG
>>572
バ、バカだとぉぉ!!!!
キサマぁぁぁあぁ
0574デフォルトの名無しさんNGNG
>>572,573
まぁまぁまぁまぁ
0575デフォルトの名無しさんNGNG
Ω ΩΩ<お、お前らおちおちおちけもつっうつ
0576デフォルトの名無しさんNGNG
いや、馬鹿だとは思わないよ。実際には結構頭いいんだと思う。でも
時々、深く考えないでカキコしちゃうことがあって、しかもそういう時に
限っていらん所を突っつく奴が出て来るから、結局かかないでいい恥を
掻いてしまうタイプなんだと思う。まあ、犬に噛まれたと思えばよし。
0577デフォルトの名無しさんNGNG
つか、Doc/Viewってなんだよ。まじ意味わかんねー
BCBに浮気から本気になりそうな悪寒
0578デフォルトの名無しさんNGNG
1.25ジゴワット
0579デフォルトの名無しさんNGNG
>>577
データの保持や操作はDocumentで管理し、Viewはユーザーとの対話/表示に専念させよう
という概念。
0580デフォルトの名無しさんNGNG
>577
Doc/Viewなんてわかんなくても無問題
ダイアログベースから始めるべし
つーか、いきなりDoc/ViewはRPGでゆーとLV1でラスボス戦に匹敵w
0581デフォルトの名無しさんNGNG
>>568-569
そりゃないぜセニョール
インテリセンスが使えるのを前提でクソ長い名前をつけまくったんだよ。
いちいちコーディングのたびにネームスペースをコメントアウトして
書き終わってからまた戻してる現状・・・
0582デフォルトの名無しさんNGNG
あのう大変あつかましいのですが
簡単な画像ビューアーなどを作ったりしたことがある
職歴無しの現在無職の28歳なんですが
それでもPGできますでしょうか?
やっぱりNEにさせられるんでしょうか?

釣りでもネタでもないです。マジレスなので
ここだと実際にPG経験者がいるみたいなので
リアリティのある返答が期待できると思いまして。
スレ違いかもしれませんがお願いします
0583デフォルトの名無しさんNGNG
***すれ立てるまでもない質問はここで 第59刷*** (ム板)
http://pc5.2ch.net/test/read.cgi/tech/1095070402/
スレッドを立てるまでもない質問雑談スレ16 (マ板)
http://pc5.2ch.net/test/read.cgi/prog/1089465975/

聞くなら、この辺りがスレ的には正しいかも。
0584582NGNG
>>583
すみません移動します
ありがとうございました
0585デフォルトの名無しさんNGNG
>>552を教えてください。
ヒントでもかまわないので・・・
0586デフォルトの名無しさんNGNG
HTTP/1.1 404 Not Found

VC持ってるなら、CWebBrowser2
のソース見れば?汚いけど。
0587デフォルトの名無しさんNGNG
BitBlt等で描画できますが、ピクセル単位ではなく
ピクセルより細かく描画することってできませんでしょうか?
最初は1ピクセルで動かして2ピクセルにすると
2倍の速度になってしまうので、急なスピードアップになってしまいます。タイマー使わなくても遅いので細かくする必要があるかなと思いまして。
0588デフォルトの名無しさんNGNG
>>587
ピクセル以下って何?
0589デフォルトの名無しさんNGNG
>>587
ピクセルって最小単位だよ?
例えば、点を動かしたいのなら、座標、移動速度のベクトル、を点ごとに
保持し、
次の座標=現在座標+移動速度のベクトル×時間
という計算をすれば次の時間の座標が解かるでしょ
座標というデータを実数型にして、描画するときは小数点以下を切り捨てれば良い
0590デフォルトの名無しさんNGNG
>>589
プログラム一周してくるのが遅いから
1ピクセルをより早く動かすことができないのです。
かといって2倍の2ピクセルにすると速すぎるし。
別に特別重い処理をしてる訳でも無さそうです。
描画の数増やしても遅くならないし。
0591デフォルトの名無しさんNGNG
>>590
べつに整数倍で動かさなくても良かろう。
>>589の言ってるように移動量を実数倍で持てばいい。
例えば1.5づつ動くとすると
1.5 3.0 4.5 6.0 7.5…
小数点以下を切り捨てれば
1 3 4 6 7…
となって、全体でみると1.5づつ動いてるように見える。
0592デフォルトの名無しさんNGNG
勘違い。move_size=1;
y+=move_size;みたいな使い方してたのが間違いだった。
線形補間使えば、精度上がるんだ。
それともyとmove_sizeを実数型にするか。
>>588~>>591
みなさんありがとうございました。
0593デフォルトの名無しさんNGNG
質問です。トラックバーなのですが
case WM_CREATE:
ic.dwSize = sizeof(INITCOMMONCONTROLSEX);
ic.dwICC = ICC_BAR_CLASSES;
InitCommonControlsEx(&ic);
hTrack = CreateWindowEx(0,//拡張ウィンドウスタイル
TRACKBAR_CLASS,//ウィンドウクラス
"",//ウィンドウの名前
WS_CHILD | WS_VISIBLE | TBS_ENABLESELRANGE | TBS_FIXEDLENGTH ,//ウィンドウスタイル
25, 7, 150, 15,//位置、大きさ
hWnd,//親ウィンドウ
(HMENU)0x10,//コントロールID
hInst,//インスタンスハンドル
NULL);
このように宣言し、
case WM_HSCROLL:
iPos = SendMessage(hTrack, TBM_GETPOS, 0, 0);
wsprintf(szStr, "%d", iPos);
SetWindowText(hEdit,szStr);
iPosはint型で、szStrはchar型です。
SetWindowTextでエディットコントロールへ
トラックバーの位置を表示しようとしたのですが、取得できていません。
初心者な質問ですみません。
0594デフォルトの名無しさんNGNG
DLL作りたいんですが、コンパイル時に

mfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain はすでに ModArtDLL.obj で定義されています
mfcs42d.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain は ModArtDLL.obj で定義されています; 2 つ目以降の定義は無視されます
ライブラリ Debug/ModArtDLL.lib とオブジェクト Debug/ModArtDLL.exp を作成中
Debug/ModArtDLL.dll : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました
link.exe の実行エラー

というエラーが出てコンパイルできません。
0595デフォルトの名無しさんNGNG
フーン よかったね
0596デフォルトの名無しさんNGNG
>>594
DllMain()が定義されてるとか?
0597デフォルトの名無しさんNGNG
>>596
それは消しました
0598デフォルトの名無しさんNGNG
自己解決したからえーわ
つかえねーなお前等
0599デフォルトの名無しさんNGNG
>598
まったくもって同意だ。
0600デフォルトの名無しさんNGNG
>>598-599
つかえねーなお前等
残ってる質問全部答えてみろよ。
0601デフォルトの名無しさんNGNG
ちょっとMFCにて質問です
CMyDialog.cpp(独自のクラス)から、CxxxViewクラスの関数を使うため、
#include "CxxxView.h" を冒頭に入れたら、
error C2143:構文エラー:':'が'*'の前にありません。
error C2501:'CxxxView::CxxxDoc' : 識別名を宣言するのに、型が指定されていません。
error C2501:'CxxxView::GetDocument' : 識別名を宣言するのに、型が指定されていません。

と怒られてしまいました・・・
どうしたら良いでしょう?
0602デフォルトの名無しさんNGNG
>>601
MFCの前にC++の勉強をお願いします。
0603デフォルトの名無しさんNGNG
>>601
#include "CxxxView.h"
の前に
#include "CxxxDoc.h"
を挿入
0604601NGNG
>>603
おお!感謝です!
0605デフォルトの名無しさんNGNG
VisualStudio.NET 2003について質問です。
ビルドする際にビルド番号の自動インクリメントを行いたいのですが、
アドインを探してみてもVC6用しか見つかりませんでした。
マクロを組むしかないのでしょうか?
0606605NGNG
すみません。自己解決しますた
0607デフォルトの名無しさんNGNG
CreateFile("test.bmp", 以下略);の戻り値(HANDLE型)
とHBITMAPって同じ扱いができますか?
ReadFile( (HANDLE)hBMP, pBMP, 略); //キャストOK??
要はHBITMAPの色情報にアクセスしたいんです。
HANDLEでBitBltができるならHANDLE使うのもOKだけど。
0608デフォルトの名無しさんNGNG
>>607
できません。
0609デフォルトの名無しさんNGNG
VisualC++.NETであるディレクトリにあるテキストファイルを全てコンボボックスのデータに入れたいのですが、
どうすればいいですか?
ディレクトリのパスはCString型の変数で受け取ります。
0610デフォルトの名無しさんNGNG
>>609
検索キーワード教えてやるよ。
CFileFind
CComboBox::AddString
0611609NGNG
>>610
ありがとうございます。
0612デフォルトの名無しさんNGNG
>>608
それでプログラム走らせたら、エラー起こっちゃった。
レスありがと。
0613デフォルトの名無しさんNGNG
>>612
余計なお世話かもしれないけど、
ビットマップファイルを読みたいんだったら
LoadImage で LR_LOADFROMFILE を指定すればできるよ。
0614デフォルトの名無しさんNGNG
エディタ作ろうと思うんだけど、注意する部分って何?
0615デフォルトの名無しさんNGNG
よく、ぐぐる事
0616デフォルトの名無しさんNGNG
>>613
どうもありがとう。
BMPファイルを直接アクセスしようと試みてます。
が、なかなかうまくいかなくて。。。調べ不足気味です。
0617デフォルトの名無しさんNGNG
>>616
BMPファイルの構造
------
BITMAPFILEHEADER
BITMAPINFOHEADER
RGBQUAD[(1<<bpp)<=256 ? (1<<bpp) : 0 ]
ビットデータ

ビットは高さが正のときは下から、負のときは上から、
横幅は確か4バイトアラインになってた気がするので注意。

別にファイル直接操作しなくても
LoadImage で LR_CREATEDIBSECTION して
GetObject で DIBSECTION が取って来れるが。
0618616NGNG
あるBMPファイルを読み込みそのデータをもとに
hForeBMPを作成しようとしてます。
おそらくアクセスエラーだと思うんですが、
どこが間違ってるんでしょう?
あとDWORD単位でデータの改変できないのかな。
サンプルとか見てみると皆BYTE使ってるし。
最初DWORDで試みたけど同じくダメでした。
617さんレスありがとうです。

DWORD iFileSize=0;
BYTE *pReadData, *pData;

//ここは関係有りませんがpData取得の為載せました。
hForeDC=CreateCompatibleDC(NULL);
hForeBMP=CreateDIBSection(hdc,&biInfo,DIB_RGB_COLORS,(void**)&pData,NULL,0);
SelectObject( hForeDC, hForeBMP );

//ハンドルの取得
HANDLE hBMP=CreateFile(FileName,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
iFileSize=GetFileSize( hBMP,NULL );
//ハンドルから読み込み
pReadData=(LPBYTE)HeapAlloc( GetProcessHeap(), 0, iFileSize );
ReadFile( hBMP, pReadData, iFileSize, NULL,NULL );
CloseHandle(hBMP);
//色データ位置へ
pReadData=(BYTE*)(pReadData+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER));
pData=(BYTE*)(pData+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER));
0619616NGNG
続きです。長文ごめんなさい。

//データの改変
int max=0,min=width;
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
if(pReadData[j*3+i*height]==0x00 &&
pReadData[j*3+i*height+1]==0x00 &&
pReadData[j*3+i*height+2]==0x00) { //黒なら白に
pData[j+i*height]=GaugeColor & 0xff; //B
pData[j+i*height+1]=(GaugeColor>>8) & 0xff; //G
pData[j+i*height+2]=(GaugeColor>>16) & 0xff; //R
}else{ //白なら黒に
pData[j+i*height]=0x00;
pData[j+i*height+1]=0x00;
pData[j+i*height+2]=0x00;
}
}
}
HeapFree( GetProcessHeap(), 0, pReadData );
0620デフォルトの名無しさんNGNG
>>619
"j*3+i*height"とか"j+i*height"のあたりがダメダメ。
もう一度サンプルをよく見てみ。
0621614NGNG
開発はVC++.netですが、
Win32APIとか覚えないといけませんか?
0622>>619NGNG
void CBbbDlg::OnButton1()
{
  // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
  CString fname = "c:\\test.bmp";
  HANDLE hFile = CreateFile(fname, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

  DWORD FileSizeH, FileSizeL;
  FileSizeL = GetFileSize(hFile, &FileSizeH);

  LPBYTE lpBMP = new BYTE[FileSizeL];
  DWORD dwRead = 0;
  ReadFile(hFile, lpBMP, FileSizeL, &dwRead, NULL);

  LPBITMAPFILEHEADER pFileHeader;
  LPBITMAPINFOHEADER pInfoHeader;
  pFileHeader = (LPBITMAPFILEHEADER)(lpBMP);
  pInfoHeader = (LPBITMAPINFOHEADER)(lpBMP + sizeof(BITMAPFILEHEADER));

  int offset = pFileHeader->bfOffBits;
  LPBYTE pPixcel = lpBMP + offset;
  int PixBuffLen = FileSizeL - offset;

  int BmpHeight = pInfoHeader->biHeight;
  int BmpWidth = pInfoHeader->biWidth;

  CloseHandle(hFile);
0623>>619NGNG
  //変換(24bitのみ)
  ASSERT(pInfoHeader->biBitCount == 24);

  int x, y;
  LPBYTE p = pPixcel;
  for(y = 0 ; y < BmpHeight ; y++)
  {
    for(x = 0 ; x < BmpWidth ; x++)
    {
      if(p[0] == 0 && p[1] == 0 && p[2] == 0)
      {
        p[0] = 0xFF;p[1] = 0xFF;p[2] = 0xFF;
      }
      else if(p[0] == 0xFF && p[1] == 0xFF && p[2] == 0xFF)
      {
        p[0] = 0;p[1] = 0;p[2] = 0;
      }
      p += 3;
    }
  }

  HWND hWnd = GetSafeHwnd();
  HDC hDC = ::GetDC(hWnd);
  int lines = ::StretchDIBits(hDC, 0, 0, BmpWidth, BmpHeight, 0, 0, BmpWidth, BmpHeight, pPixcel, (LPBITMAPINFO)pInfoHeader, DIB_RGB_COLORS, SRCCOPY);
  ASSERT(lines == BmpHeight);
  ::ReleaseDC(hWnd, hDC);

  delete [] lpBMP;
}

でどうかな?
0624デフォルトの名無しさんNGNG
>>623
BMPの1行分は4バイトアラインになっていることは考慮しているかい?
0625デフォルトの名無しさんNGNG
4バイアラン
0626デフォルトの名無しさんNGNG
File View の外部依存関係ってなんなんでしょうか?
というのも、参考書買ってサンプルプログラムで勉強しているんですが、
外部依存関係のところに宣言だけしてあって肝心の定義がみあたらないんです・・・。
0627623NGNG
>>624
考慮してませんでした。
とりあえずyのループで次のようにポインタ調整追加してみますた。
  for(y = 0 ; y < BmpHeight ; y++)
  {
    for(x = 0 ; x < BmpWidth ; x++)
    {
      略
      p += 3;
    }
    if((BmpWidth * 3) % 4) p += 4 - ((BmpWidth * 3) % 4);
  }

へんなやり方でスマソ。もっとスマートな回答者、よろ。
0628デフォルトの名無しさんNGNG
やだ
0629616NGNG
622さんのコード真似てみました。
GetFileSize関数の戻り値がいつもlongの最大値に
なってしまうんですが、どういうことなんでしょうか。
どのファイルを指定し取得しても、ファイル名をデタラメにして
取得(そしたら新規ファイルができると思ってやりました(調べて無いです))しても同じ結果で、42..(略)が戻ってきます。
原因はこれだと思いますが、コードも一応....

BYTE *pWriteData;
hForeDC=CreateCompatibleDC(NULL);
hForeBMP=CreateDIBSection(hdc,&biInfo,DIB_RGB_COLORS,(void**)&pWriteData,NULL,0);
SelectObject( hForeDC, hForeBMP );

//ハンドル取得
HANDLE hBMP=CreateFile(FileName,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD FileSizeL=GetFileSize( hBMP,NULL );
if(!hBMP) DebugMSG("File=%s:hBMP is NULL");
//ハンドルからデータを取得
LPBYTE pReadData = new BYTE[FileSizeL];
DWORD dwRead=0;
ReadFile( hBMP, pReadData, FileSizeL, &dwRead,NULL );
CloseHandle(hBMP);
0630616NGNG
続き。
//オフセット値を求めてピクセル情報の位置へ
LPBYTE pPixel[2]; //[0]:読み込み側、[1]:書き込み側
for(int i=0; i<=1; i++){
LPBYTE pData = (i==0)? pReadData : pWriteData;
LPBITMAPFILEHEADER pFileHeader = (LPBITMAPFILEHEADER)(pData);
LPBITMAPINFOHEADER pInfoHeader = (LPBITMAPINFOHEADER)(pData+sizeof(BITMAPFILEHEADER));
int offset = pFileHeader->bfOffBits;
pPixel[i] = (BYTE*)(pData+offset);
}
以上です。アラインは無視。
スプライトっぽい使い方をしたいので、元画像もしないといけないっぽいから....。このコードどうでしょうか。。。
//データの改変
LPBYTE pr=pPixel[0],pw=pPixel[1];
int max=0,min=width;
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){ //黒なら任意の色へ
if(pr[0]==0 && pr[1]==0 && pr[2]==0){
pw[0]=GaugeColor & 0xff; //B
pw[1]=(GaugeColor>>8) & 0xff; //G
pw[2]=(GaugeColor>>16) & 0xff; //B
}else{ //白なら黒へ
pw[0]=0, pw[1]=0, pw[2]=0;
}
pw+=3;
pr+=3;
}
}
delete[] pReadData;
0631616NGNG
ごめん。変なところに文章はいった。
0632デフォルトの名無しさんNGNG
単にファイルのパスが間違ってるだけだろ。
それよりファイルハンドルにhBMPとか名前つけるのやめれ。
0633デフォルトの名無しさんNGNG
アンチハンガリアンキタ━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(  )━(゚  )━(∀゚ )━(゚∀゚)━━!!!!!
0634デフォルトの名無しさんNGNG
900
0635デフォルトの名無しさんNGNG
HANDLEとHBITMAPは違うってことじゃないのか?
0636デフォルトの名無しさんNGNG
>>632は
・ファイルハンドルに対して"BMP"という名前は相応しくないから止めろ
・ハンガリアン記法は止めろ
・その他の理由
どれだろう
0637デフォルトの名無しさんNGNG
「ファイルハンドルに」としてるから1番。
0638デフォルトの名無しさんNGNG
VC++ってカコイイUIを作るのには不向きなの?
BCBだと簡単にカコイイUIが作れるからそう思ったのですが
みなさんどうでしょうか?
0639デフォルトの名無しさんNGNG
>>638
作る人のセンスと能力次第
0640デフォルトの名無しさんNGNG
BCBとVC++ってそんなにUI作る環境違うの?
0641デフォルトの名無しさんNGNG
>>629
CreateFile()が失敗したときの戻り値はNULLではなくINVALID_HANDLE_VALUE だ。
どんなサンプルを参考にしたんだ。
0642デフォルトの名無しさんNGNG
>>638
JavaならカコイイUIが作れるぞ。
0643デフォルトの名無しさんNGNG
そういやWTLのメーリングリストにJavaと組み合わせたの投稿されてたな。
http://groups.yahoo.com/group/wtl/message/10066

ここスクリーンショット。
http://www.terrainformatica.com/org/j-smile/index.htm
0644デフォルトの名無しさんNGNG
>>642
釣りはやめて下さい。
0645デフォルトの名無しさんNGNG
VC++6.0SP6なんだけど、全てのC++例外をキャッチしようと
try {} catch(...) {}
と書くとアクセス違反のような構造化例外?もキャッチしてしまいます。
throwで投げられた例外のみキャッチする方法はないでしょうか?
例外の基本クラスを統一するとかしないと駄目ですか?
0646デフォルトの名無しさんNGNG
javaならスッキリ例外処理が書けます。
0647デフォルトの名無しさんNGNG
std::stringで書式指定で値をセットしたい
std::string str;
str.sprintf("%d\t%d",1,2);
なんて出来ないの?
0648デフォルトの名無しさんNGNG
>>647
#include <iostream>
#include <sstream>
#include <boost/format.hpp>
using namespace std;
int main () {
ostringstream oss;
oss << boost::format ("%d\t%d") % 1 % 2;
string str (oss.str ());
return 0;
}
0649デフォルトの名無しさんNGNG
#include <iostream>
#include <boost/format.hpp>
using namespace std;
int main () {
  string str(boost::str(boost::format ("%d\t%d") % 1 % 2));
  return 0;
}
0650デフォルトの名無しさんNGNG
>>647
boostが嫌ならcout風に使うstringstreamか、それも嫌ならCStringにする。
0651デフォルトの名無しさんNGNG
#include <boost/format.hpp>
using namespace std;
int main () {
string str ((boost::format ("%d\t%d") % 1 % 2).str ());
return 0;
}
0652デフォルトの名無しさんNGNG
ここはVC++スレか?
0653デフォルトの名無しさんNGNG
VC++スレだ。
0654デフォルトの名無しさんNGNG
ダイアログベースで印刷プレビューを表示したいんですが
どのようにすれば良いのですか?
0655デフォルトの名無しさんNGNG
自前で出す。
0656デフォルトの名無しさんNGNG
あーあ、FormViewベースで作っとけばよかったのに。
0657654NGNG
>>655
>>656
やっぱり・・・_| ̄|○
0658デフォルトの名無しさんNGNG
ダイアログベースやFormViewベースを好む香具師は℃素人確定でつ
0659デフォルトの名無しさんNGNG
えー?ドユコトデスカー?シャチョー(´Д`;)
0660デフォルトの名無しさんNGNG
まだ入手すらしてなくて恐縮なんですけど、
出来る限り安くVC++を入手するには、どうすればいいんでしょう?
7000円とか、8000円とかは高くて・・・・・
0661デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1095325802/
7000円よりは安いと思う
0662デフォルトの名無しさんNGNG
>>660
winnyなんてどうかしらん?
0663デフォルトの名無しさんNGNG
winnyはやめとけ。便利だとは思うけど、際限が無くなるからさ。
Spokeも安いけどさ、それならオークションで落としたほうがまだ安いよ?
0664デフォルトの名無しさんNGNG
オークションはなぁ・・・
前にβ版を詳しくないとか言い訳して製品版として売ってたやついたからなぁ・・。
しかもノークレームだよ。
0665660NGNG
皆さんアドバイスありがとうございます。
カリキュラムを確認したところ、C言語でした。

Winnyはさっぱりわかりません。
オークションって、詐欺にあったりしませんか?
0666デフォルトの名無しさんNGNG
>>665
その話題は別スレだろ。
マルチは氏ね。
0667デフォルトの名無しさんNGNG
C言語の講義だけだったらフリーのコンパイラだけでいいじゃん。
どうせ数値計算ぐらいだろ。
0668デフォルトの名無しさんNGNG
マルチかよ。
オークションで詐欺って、おまえみたいな無知が引っかかるんだよ。
0669デフォルトの名無しさんNGNG
秋葉のワゴンで外国人がVS6.0Professionalを5千円で売ってたぞ。
0670デフォルトの名無しさんNGNG
マジ質問です。
VC++ってコントロールが凄く少ないじゃないですか?
C***Viewでも数少ないですよね?
どうやってUIを作成していくのでしょうか?
なにか良さげHPありませんか?
0671トーシロNGNG
UIってなに?ユーザーインターフェイス?
0672デフォルトの名無しさんNGNG
>>671
さがってよいぞ
0673デフォルトの名無しさんNGNG
>>671
そう。
CUI=文字だけのインターフェース
GUI=ウインドウとか絵とかマウスとか使ったインターフェース
PUI=ロボットが見ぶり手ぶりしたり、マウスが画面の端にぶつかったりするとマウスが物理的に動かなくなったり、人の直観で操作・認識できるインターフェース。
0674デフォルトの名無しさんNGNG
>>670
少ないって何が足りないんだ?
具体的に何がないか書けよ
0675デフォルトの名無しさんNGNG
VC#とVC++を比較すれば一目瞭然
0676デフォルトの名無しさんNGNG
アクティブXコントロールの追加で幾らでも入れられるから
別にどうでもいい
0677デフォルトの名無しさんNGNG
そのアクティブXコントロールをどこに配置すればいいのかがわかりません。
VC#みたいにフォームにポトってわけじゃないですよね?

それともCFormViewでポトってやるんですか?
0678デフォルトの名無しさんNGNG
VC++でもポトだよ。
0679デフォルトの名無しさんNGNG
VC++6.0だとメニューのプロジェクトへ追加ー>コンポーネントおよび
コントロールから選ぶんだけど.netだとどうなっているのかな。
0680デフォルトの名無しさんNGNG
質問なんですが

Visual C++ 6.0 Standard
と
Microsoft Visual C++ .NET Standard 2003

この2個は何か違いがあるのでしょうか?
0681デフォルトの名無しさんNGNG
managed C++のサポートと
ISO C++のサポートと
ユーザーインターフェイスかな。
0682680NGNG
初心者なんですが

買うとしたらどっちの方がいいでしょうか?

今のところ無償のを使っているのですが
かってみようかなぁと思いまして
0683デフォルトの名無しさんNGNG
VC6何年前のだと思ってんだよ。
0684デフォルトの名無しさんNGNG
ttp://hp.vector.co.jp/authors/VA019882/tips/data/data01.htm#018
で紹介されている関数を応用してプログラムを組んでいたのですが、
コンパイルをすると this->getFiles(FileFind.GetFilePath() , bSubFolder , csFileArray );のところで

>グローバル関数にアクセスするための 'this' ポインタがありません。
>左側がクラス、構造体、共用体へのポインタではありません。

というエラーが出てしまいます。C++は入門書を持っていないのでthisの意味がよく分からないのですが、
どういう物なのでしょうか?googleで検索をかけても「"this" は一般すぎる言葉のため、 検索には使用されていません。」
と出てしまい、調べらません。
0685デフォルトの名無しさんNGNG
>>684
+thisとすれば一般的な言葉も検索できますよ。
0686デフォルトの名無しさんNGNG
>>685
おお、本当だ!!ありがとうございました。
0687デフォルトの名無しさんNGNG
あほ?構造体ポインタ変数宣言してないだけだろ
0688デフォルトの名無しさんNGNG
構造体ポインタ変数宣言…?
参考にしたソースには書かれていなかったのですが、どのように宣言すればいいのでしょうか?
0689デフォルトの名無しさんNGNG
>>688
相手がわからないと思って適当な事言ってるだけだから気にしちゃだめだよ。
0690デフォルトの名無しさんNGNG
>>684
そのままコピペでもしたからだろ?
そのTipsはクラスのメンバ関数として作られることを前提にしてるから、
グローバル関数にしても使えない。
どこかのクラスに入れるか、this->を消せばOK
0691デフォルトの名無しさんNGNG
>>658
詳しく説明して下さい
0692デフォルトの名無しさんNGNG
おお、+つけりゃストップ語も検索できるのか。
実はCOMが検索できんで困ってたんだ。トンクス
0693616NGNG
HBITMAPのことを質問した者ですが、みなさんありがとうございました。
>>632さんの仰る通りパス間違ってました。CreateFile関数の
場合、パスが厳しくチェックされるみたいですね。あと
戻り値がINVALID_HANDLE_VALUEというのも参考になりました。

SetPixel関数を使えばしっかり任意の色に塗られるのに
バイト単位で書き込む(pPixel[0]=0xffみたいに)と白の斜線に
なってしまうという疑問が出たのですが、ここはSetPixelでごまかしときます。。。
ともあれ、解決できたんで、ありがとうございました。
0694デフォルトの名無しさんNGNG
>>689
(゚д゚)ノ ハイ
>>690
なるほど。一箇所でしか使わないしわざわざクラスにする必要もないかなーと思って作らなかったのです。
消したらうまくいきました。ありがとうございました。
0695695NGNG
DualCPUをフル稼働させてプログラムを走らせたいのですが・・
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>
/**************/
/* メイン関数 */
/**************/
void main()
{
clock_t start, end;
start = clock();
void * hProcess;
int fRet;

hProcess=GetCurrentProcess();
fRet=GetProcessAffinityMask(hProcess,&dwProcessAffinityMask,&dwSystemAffinityMask);
fRet=SetProcessAffinityMask(hProcess,dwProcessAffinityMask);
//SetProcessAffinityMask(hProcess,4);

for(;;){
printf("表示\n");
}

end = clock();
printf("処理時間: %f秒\n", (double)(end - start) / CLOCKS_PER_SEC);
}

と参考書通りに書くと,dwProcessAffinityMask,dwSystemAffinityMaskが定義されていません。
とエラーがでます。何度かエラー解除を試みているのですが,エラーが消えません。
目的はDualCPUのフル稼働です。並列処理ではありません。誰か教えてください。
0696デフォルトの名無しさんNGNG
その参考書無茶苦茶だな
0697デフォルトの名無しさんNGNG
winapp error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。
winapp fatal error LNK1120: 外部参照 1 が未解決です。

というエラーがでます。どうしてですか?
0698デフォルトの名無しさんNGNG
>>697
コンソールプログラムを作るための設定になっているから。
0699デフォルトの名無しさんNGNG
アフィニティーマスクって数字を指定しないと駄目では?
CPU1なら0
CPU2なら1
だったかな?
0700デフォルトの名無しさんNGNG
有難うございます。そこで、win アプリケーションでしたところ、ビルドは
できたのですがデバッグで、このようにでました。
'WinApp.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\USER32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\GDI32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\imm32.dll' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\ADVAPI32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\rpcrt4.dll' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
プログラム '[1760] WinApp.exe: ネイティブ' はコード 87 (0x57) で終了しました。

これはなんですか?
0701デフォルトの名無しさんNGNG
リンクするライブラリが違う悪寒
0702デフォルトの名無しさんNGNG
>'WinApp.exe': 'C:\WINNT\system32\rpcrt4.dll' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
このような内容の行は無視しても大丈夫

ついで言うと >>697
よく分からなかったらエラー番号の上にカーソル持っていって F1 キー
0703デフォルトの名無しさんNGNG
>>697
http://pc5.2ch.net/test/read.cgi/tech/1094494997/727
0704デフォルトの名無しさんNGNG
'WinApp.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\USER32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\GDI32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\imm32.dll' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\ADVAPI32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'WinApp.exe': 'C:\WINNT\system32\rpcrt4.dll' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
プログラム '[1760] WinApp.exe: ネイティブ' はコード 87 (0x57) で終了しました。

と表示されます。どうしてですか?
0705デフォルトの名無しさんNGNG
>>695

マルチスレッドプログラミング相談室 その2
ttp://pc5.2ch.net/test/read.cgi/tech/1037636153/
0706デフォルトの名無しさんNGNG
コンパイルのオプション全部書け
0707デフォルトの名無しさんNGNG
マルチうぜぇ。
相手にする香具師もうぜぇ。
0708デフォルトの名無しさんNGNG
お前が一番ウザイ↑
0709デフォルトの名無しさんNGNG
704ですが、わかりません。教えてください。
0710デフォルトの名無しさんNGNG
ageんな
0711デフォルトの名無しさんNGNG
>>709
いい加減にしろ。向こうのスレでも答えてもらってんだろ。
0712695NGNG
695です。
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>
/**************/
/* メイン関数 */
/**************/
void main()
{
HANDLE hProcess;
int fRet;
DWORD dwProcessAffinityMask,dwSystemAffinityMask;

hProcess=GetCurrentProcess();
fRet=GetProcessAffinityMask(hProcess,&dwProcessAffinityMask,&dwSystemAffinityMask);
fRet=SetProcessAffinityMask(hProcess,1);

for(;;){
printf("表示\n");
}
}
と書き直したらエラーは消えるのですが,CPUは以前と1/4しか使っていません。
どうすればCPUをフル稼働させることができますか?教えてください。
0713デフォルトの名無しさんNGNG
ぎゃはははは
0714デフォルトの名無しさんNGNG
15秒間フル稼働のプログラム↓

#include <stdio.h>
#include <windows.h>
#include <process.h>
#include <stdlib.h>
#include <time.h>

static
void task(void* id){
SetThreadAffinityMask(GetCurrentThread(),1UL<<atoi((char*)id));
clock_t start=clock();
printf("タスク%sの開始\n",id);
while(clock()-start<15*CLOCKS_PER_SEC){
//何か
}
printf("タスク%sの終了\n",id);
}

main(){
HANDLE t1=(HANDLE)_beginthread(task,0,"1");
task("0");
WaitForSingleObject(t1,INFINITE);
return 0;
}
0715デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ
0716695NGNG
ありがとうございます。
試してみたいと思います。
0717デフォルトの名無しさんNGNG
VC++6.0でツールボックス(?)ボタンとかテキストとか貼りつけるやつ
が出てこなくなりました。どうしたら表示できますか?
かれこれ1時間近く探してます・・。・゚・(ノД`)・゚・。
0718デフォルトの名無しさんNGNG
あった━━━━(Д゚(○=(゚∀゚)=○)Д゚)━━━━━!!
0719デフォルトの名無しさんNGNG
左側にツリービューコントロールがあり、ツリーから選んだ項目が右側に出る
という設定ダイアログを最近よく見かけるようになりました。(WinAMPやOpenJane等で使われている)
こういうダイアログは自作なのでしょうか?
0720デフォルトの名無しさんNGNG
そりゃあ、勝手には出来ないわな
0721デフォルトの名無しさんNGNG
>>720
いやそういう意味ではなく
ツリービューを配置したダイアログを作成して、ツリー項目が選択されたら子ダイアログを右側に表示
とかそういうコードをシコシコ書いているのか、
SHBrowseForFolderみたいに一発で表示できるとか、
MFC等のライブラリにそういうものがあるのかな、と。
0722デフォルトの名無しさんNGNG
最近でもないけどね。netscapeではずっと前からそういう設定ダイアログに
なっている。
>ツリービューを配置したダイアログを作成して、ツリー項目が選択されたら子ダイアログを右側に表示
とかそういうコードをシコシコ書いている

たぶんそうでしょう。これ自体は数行で書けるから技術的な問題は
ほとんど無いかと。
0723デフォルトの名無しさんNGNG
>>719
OpenJaneは確かデルファイでオープンソースでは?

winampのリソース見てみたけど、右側のダイアログはこんな感じ。
(左側は実際のWinampの設定画面)
http://v.isp.2ch.net/up/3c1e4e393976.png
0724デフォルトの名無しさんNGNG
>>721
明らかに見た目も機能も(右クリックへの対応など)ばらばらなのに同じAPIで実現されてるわけ無いだろ。
0725デフォルトの名無しさんNGNG
よく、ちょっと変わったListViewのアプリケーション見かけますよね?
あれって、
CListCtrlから派生クラスを作成(例えばCListCtrlEx)するんですよね?
そのCListCtrlExをViewに選択するときってどうするんですか?
プロジェクト作成時のViewはCViewでも良いのでしょうか?
0726デフォルトの名無しさんNGNG
>>721
漢なら自作するに決まってるだろ。
コモンダイアログすら使うことは許さん。全て自前で書け。
0727デフォルトの名無しさんNGNG
>>726
みたいなバカはシカトでOKだよ
そのCListCtrlExクラスのインスタンスを作成してCreateを呼べばCViewに表示されるよ
0728デフォルトの名無しさんNGNG
なんでVC++なの?
BCBじゃだめ?
0729デフォルトの名無しさんNGNG
そんなしけた燃料投下でこの俺様が釣られるかクマー
0730デフォルトの名無しさんNGNG
すんません、糞な質問で申し訳ないのですが
リソースエディタでは256色までのBitMapファイルしか
取り込めないのでしょうか?
クライアントに32Bitや16BitのBMP画像を表示するには
どうすればいいのでしょうか・・・。
CHtmlViewを描画の基本クラスにすれば
画像ファイルを指定して読み込んで表示できるようですが、
CViewを使ってやるにはどうすればよいのでしょう。
ほんとアホな質問で申し訳ありません。
環境はWindowsXP:Home,VisualC++6.0です。
0731デフォルトの名無しさんNGNG
>>730
アホな質問はよそでしてください。
0732デフォルトの名無しさんNGNG
エクセルみたいな表型式にしたいんだけど、
グリッドコントロールみたいのないの?
VC.NET(アンマネージ)
0733デフォルトの名無しさんNGNG
あるよ
0734半日潰れたNGNG
MFCでstrncpy使うと、debugビルド時に'\0'を
勝手に付加してコピーしてくるんですけど・・・
なんなの?
0735デフォルトの名無しさんNGNG
デバックビルドだと配列が0クリアされるからじゃねーの。
0736734NGNG
>>735
すまん・・・
その通りでした。orz
軽く聞き流してやって下さい・・・
0737デフォルトの名無しさんNGNG
【無料】Visual Studio 2005 Express【Beta】
http://pc5.2ch.net/test/read.cgi/tech/1091543344/269
から移動してきました。

2003 向けのプロジェクトを読み込んで、makefile を作るにはどうしたらいいですか?
それを使って、Visual C++ Toolkit 2003 でビルドしたいんです。
0738デフォルトの名無しさんNGNG
無理
0739デフォルトの名無しさんNGNG
VC6+MFCです。
ドキュメントクラスで、ワーカースレッド立ち上げて、
そこから、Viewクラスに情報を渡したいんですが、
こういう場合、一般的にはどうするのでしょうか?

グローバルでやりとりもスムーズも余りきれいにはいかないですし、
Documentクラスのポインタをワーカースレッドに渡して仲介すべきなのか、
Viewのポインタを渡した方がいいのか、、、スマートな方法を教えてください。
よろしくおねがいします。
0740デフォルトの名無しさんNGNG
UpdateAllViews
GetDocument
0741739NGNG
レスどうもです。
すみません、UpdateAllViewsだと、Viewのイベントになりますよね。

補足ですみません、しばらく考えましたが、
ワーカースレッドから、Documentにメッセージを送れるとよさそうです。
SendMessageでいけるかと思ったのですが、ハンドルがもちろん無いので駄目でした。

ワーカースレッドから、Documentにメッセージを送る方法はあるでしょうか?
0742デフォルトの名無しさんNGNG
Documentクラスになんかメンバ関数を作ってその中に必要な処理を書く
Documentクラスのポインタをワーカースレッドに渡して仲介
スレッドの中からそのポインタで上のメンバ関数を実行
0743739NGNG
なるほど、そうですね。
明解、ありがとうございます。
そうすると、ワーカースレッドがDocumentの型を意識する事になるので、
ちょっと躊躇していましたが、仕方なさそうですね。
ありがとうございます。
0744デフォルトの名無しさんNGNG
>>743
そもそもドキュメントに対してなんらかの処理をするワーカスレッドが
ドキュメントの型に依存してないわけが無いのではなかろうか・・・。
0745デフォルトの名無しさんNGNG
ビットマップファイルをリソースに追加できません。

マイピクチャフォルダに入っているビットマップは、リソースに追加可能なのですが、
このフォルダ以外の場所においてあるビットマップはリソースに追加できません。

やったことは
リソースビューの .rc を右クリック → リソースの追加 → Bitmapを選択してインポート
→ ビットマップファイルを選択 → 開く

これで、なぜかマイピクチャに入っているものは追加可能でしたが、それ以外のフォルダや
マイピクチャ下に作ったフォルダの中に保存していたビットマップは開くボタンを押してもリソースビューに追加されませんでした

追加したいファイルのあるフォルダはどこかに事前に登録しておく必要とかあるのでしょうか?
それとも、ビットマップを追加するとき制約でもあるのでしょうか?

解決方法を教えてくださいm(_ _)m

Visual C++ .NET 2003
Windows XP home SP2
0746デフォルトの名無しさんNGNG
>>745
ソース階下のRESフォルダに入れてみては?
あと、ファイル名が全角とか。
0747745NGNG
>>746
レスありがとうございます。

それもやってみたのですが、だめでした。

ファイル名はすべて半角英文字です。
0748デフォルトの名無しさんNGNG
スレ違いかもですが・・
YahooでVisual C++6.0欲しさにオマケソフトが色々付くと有ったVisualStudio6.0買ったんですが
肝心のC++6.0がセットアップできませんorz というかC++のCDがありません;
ひたすら検索しても妙な説明ページに引っかかりまくるばかり・・
どなたかセットアップ方法紹介しているサイトなり有ったら教えてください、
変な欲出さなきゃ良かった・・ ||orz 
0749デフォルトの名無しさんNGNG
MFCスレにも書かせてもらったのですが…
子ウィンドウにタブとかスライダー等、色々配置したいのですが
どうすればいいか迷っています。
プロパティシートを使えばという気もしますが
[OK]ボタン等が必要ないので、他にいい方法があれば
教えていただけませんでしょうか?
よろしくお願いします。
0750デフォルトの名無しさんNGNG
>>748 残念
0751616NGNG
CDないならセットアップの仕方調べてもしょうがないんじゃ...
0752デフォルトの名無しさんNGNG
>>749
1時間も経たんのにマルチポストするような香具師には答えたくない
0753デフォルトの名無しさんNGNG
MCIの質問です。よろしく。
CD再生しようとしているんですが
TMSF(トラック:分:秒:フレーム)で取得したDWORD値
をどうすれば秒に変換できますか?
というかそもそもそれは再生位置の移動(シーク)だけに使用
する値なんでしょうか。だったら、
別の方法で取得しなければいけませんが。
0754デフォルトの名無しさんNGNG
>>745
ルートにビットマップファイルを置いて読み込んでみたら?
フォルダ名・ファイル名だけでなく、Pathの途中にスペース、
全角等があると、読み込めない筈。
0755デフォルトの名無しさんNGNG
スレ違いかもしれませんが、他に見当たらなかったので質問させてください。

VB6.0でラベルをフォームに配置するときに、メニューバーで配置するのではなく、
コードを使って座標などを指定して配置したいのですが、どのようにすればいいのでしょうか・・?

また、lineメソッドなどで書いた図形が、他のアプリと重なった時に消えないようにするには
どうすればいいのでしょうか。
どなたかお願いします。
0756デフォルトの名無しさんNGNG
すぐ下にあるんだが・・・

VBプログラマ質問スレ(6.0以前) Part38
http://pc5.2ch.net/test/read.cgi/tech/1095673000/l50
0757デフォルトの名無しさんNGNG
すいません・・そっちできいてきます。
0758デフォルトの名無しさんNGNG
自作アプリに、ユーザ認証機能(ログイン画面)を追加したいのですが、
そういうDLLはありますでしょうか?
ご存知のかた教えていただけると助かります。
0759745NGNG
>>754
まったくそのとおりです。
ルートフォルダなら問題なくできました。
いろいろ試したところ、パス名に全角文字が入っていた場合に読み込みできないことがわかりました。

ありがとうございました。
0760デフォルトの名無しさんNGNG
VC++って最初のウィザードでViewを選択したら(簡単に)変えらんないの?
クライアント領域に一つのViewしかつくれないの?(分割しなかったら)

ほんとつかいずれーよなw
0761デフォルトの名無しさんNGNG
>>760
...
0762デフォルトの名無しさんNGNG
ageて煽りたい年頃なので放置してやってください
0763デフォルトの名無しさんNGNG
VC++のエディタで列番号を1行目の上に表示する方法教えてください。
0764デフォルトの名無しさんNGNG
できない
0765デフォルトの名無しさんNGNG
>>764
サンクス。
ほかの場所にでも無理ですか?
(右下の貧弱なのだけ?)
0766デフォルトの名無しさんNGNG
>>763
つか、VC++のバージョンを書いとけよ…

VS2003だったら、
オプション -> テキストエディタ -> C/C++ -> 全般
にある
0767デフォルトの名無しさんNGNG
このスレも.NET以前と以降に分けた方が良さそうな悪寒
0768デフォルトの名無しさんNGNG
managedC++スレあるじゃん。
0769デフォルトの名無しさんNGNG
次スレ立てる香具師はタイトルにどっちか書いておけ
0770デフォルトの名無しさんNGNG
VC 6.0 を使っています。
MFC AppWizard(exe)で作ったプログラムではメインをいじったりできませんか?
というかメイン関数を見ることすら出来ないんですが・・・。
0771デフォルトの名無しさんNGNG
>>770
何をしたいのか知らんが、WinMainはMFCの中にある。
0772デフォルトの名無しさんNGNG
レスありがとうございます。
ええ。実はそれ自体は知っているんですが,どうにかしていじれないですか?
やっぱり1から自分で作らないとダメでしょうか?
0773デフォルトの名無しさんNGNG
>>772
何をしたいのか知らんが、大抵のことはWinMain()以外で充分できる。
0774デフォルトの名無しさんNGNG
どういじりたいのか書かないので何とも言えんが
どうしてもWinMainをいじりたいなら当然自分で作らないとダメ。
0775デフォルトの名無しさんNGNG
>>772
メッセージで動くから、メインなんかいじってもしょうがない。
0776デフォルトの名無しさんNGNG
ディレクトリのパスを受け取って、その中の全てのテキストファイルに対して作業をする為に以下のようなコードを書いたのですが、
1ファイル目はうまくいくのに2ファイル目以降がfin.open((LPCTSTR)(dirname + "\\" + filename));でオープンに失敗してしまいます。
while(getline(fin, line))の部分をコメントアウトすれば成功するので、おそらく原因はそこなのでしょうが、何故なのかがわかりません。
出来れば解決法も含めて教えてください。開発環境は Visual C++.NETです。

CString dirname; /* ディレクトリの名前 */       CString filepath; /* dirname\*.txtに適合するファイルのパス */ 
CString filename; /* dirname\*.txtに適合するファイル名 */       CFileFind FileFind;
BOOL bfnf; /* FileFind.FindNextFile()の成否 */       string line; /* ファイルから1行読み込む時のバッファ */
ifstream fin;

filepath = dirname + "\\*.txt";
if(!FileFind.FindFile(filepath)) return FALSE;// dirname\*.txtなるファイルを取得。なければ終わり
do{
 bfnf = FileFind.FindNextFile();
 if(!FileFind.IsDots()){// .\や..\の除外
  filename = FileFind.GetFileName();
  fin.open((LPCTSTR)(dirname + "\\" + filename));// dirname\filenameのファイルを開く(CString->char*)
  if(!fin)return FALSE; // ファイルのオープンに失敗したらFALSEを返し終了
  while(getline(fin, line)){// 1行取って来る(失敗したら終了)
  /* 色々な作業 */
  }
 fin.close();
 }
}while(bfnf);
0777デフォルトの名無しさんNGNG
777
0778デフォルトの名無しさんNGNG
>>776
「色々な作業」でFileFindかなにかを壊している悪寒。
whileブロックをコメントアウトしたら動くのなら、少しずつ戻していってどこで動かなくなるか試してみ。
#ソース晒した方が早そうだが。
0779776NGNG
>>778
ありがとうございます。/* 色々な作業 */の所は今の所全てコメントアウトしているので、
多分関係ないのではないか、と思います。

2ファイル目でfin.openが失敗して(多分) if(!fin)が成り立ってreturn FALSE実行される↓
fin.open((LPCTSTR)(dirname + "\\" + filename));// dirname\filenameのファイルを開く(CString->char*)
if(!fin)return FALSE; // ファイルのオープンに失敗したらFALSEを返し終了
while(getline(fin, line)){// 1行取って来る(失敗したら終了)
/* 色々な作業 */
}
fin.close();

if(!fin)が成り立たず、全てのファイルでfin.openが成功しているのを確認↓
fin.open((LPCTSTR)(dirname + "\\" + filename));// dirname\filenameのファイルを開く(CString->char*)
if(!fin)return FALSE; // ファイルのオープンに失敗したらFALSEを返し終了
// while(getline(fin, line)){// 1行取って来る(失敗したら終了)
// /* 色々な作業 */
// }
fin.close();

こんな感じです。
 
0780デフォルトの名無しさんNGNG
>>779
getline()の第2パラメータの型とlineの型を調べよ。
#少なくとも>776はコピペミスしてそうだ。
0781マイク ◆yrBrqfF1Ew NGNG
std::ifstream::clear()じゃないよな?
0782776,779NGNG
>>781
それだ!!というかこんなのあったんだ…fstreamとか使うの初めての上適当にやってたので全然知りませんでしたorz
1つめのファイルのgetline(fin,line)がFALSEになった時にfinのファイルストリームがEOFにセットされてるから必要になるんですね。
ありがとうございました。
>>780さんもありがとうございました。
0783デフォルトの名無しさんNGNG
>>766
> VS2003だったら、
> オプション -> テキストエディタ -> C/C++ -> 全般
> にある
列を上に表示するオプションなんてないぞ??
0784デフォルトの名無しさんNGNG
ちゃんと探せ
0785デフォルトの名無しさんNGNG
Visual C++6.0をDOSプロンプトでコンパイルするにはどうすればいいかを調べています
 
VCVARS32.BATを実行した際に、
環境変数のための領域が足りません
と表示される場合には、
どうすればよいのでしょうか?
今からC言語を勉強しようとしている初心者です。
よろしくお願いします
0786デフォルトの名無しさんNGNG
なぜ今更C言語なのかしらん?
0787デフォルトの名無しさんNGNG
>>785
http://www.mapletown.net/~nekora/soft/howto/vcvars32.html
0788デフォルトの名無しさんNGNG
グローバル変数と引数/返り値なしの関数で
いっぱいのwin32 C++のソースを元にして、
さらに進めていかなくてはいけない状況です。
VS2003で、整理してクラス化するのに
うまい方法はないでしょうか。

JavaやVS2005のC#やVBにはリファクタリングと
いう便利な機能があると聞いたのですが
C++>C#という変換というのもなさそうですし、
かといって手作業でとなると膨大で悩んでいます。
0789デフォルトの名無しさんNGNG
>>788
弊社の優秀なスタッフが動作検証まで含めてクラス化を行ないます。
規模によりますが、ほぼ0からの設計と同程度の時間と費用が掛かるとお考えください。
0790デフォルトの名無しさんNGNG
あるベンダーから配布されたActiveXコントロールを使用しようと
思ってるのですが
ダイアログベースじゃないアプリの場合、コントロールはどこに
貼り付ければいいのですか?
0791デフォルトの名無しさんNGNG
ウィンドウに貼り付けて下さい。
0792デフォルトの名無しさんNGNG
ウィンドウってなに?
0793デフォルトの名無しさんNGNG
お前が今見ているもの
0794デフォルトの名無しさんNGNG
>>792
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6
0795デフォルトの名無しさんNGNG
>>793
おまえバカだろ?
どうやって貼るんだよ
ダイアログベースじゃないっつってんじゃんよ
マジ死んでくれ
0796デフォルトの名無しさんNGNG
まあもちつけド素人
0797デフォルトの名無しさんNGNG
なんで餅つかなきゃなんねーんだよ
ばかかおめー
0798デフォルトの名無しさんNGNG
>>796
餅はカロリー高いんだよ!
氏ね
0799790NGNG
すみませんホントにどなたか教えていただけないでしょうか・・?
ちなみに>>795とか>>797はわたしではありません。
0800デフォルトの名無しさんNGNG
フォームビュー使えば。
0801デフォルトの名無しさんNGNG
CViewから派生させた独自のViewをつかっているので無理
0802デフォルトの名無しさんNGNG
>790
ActiveXコントロールといってもいろんな種類があります。
単なるDLLとして使うのであれば.hをインクルードして
.libをプロジェクトに追加します。
0803デフォルトの名無しさんNGNG
そのActiveXの作者サイドに聞けばいいじゃん。
0804デフォルトの名無しさんNGNG
>>789
委託できるほど研究費がもらえた際にはぜひ貴社に。
むぅ、機械科が作ったソースなんて・・ orz
0805763NGNG
>766
>784

VS>ツール>オプション>テキストエディタ>全般。。。
列表示が見つかりません。
VS>ツール>オプション>テキストエディタ>C,C++>全般。。。
にも見つかりません。

.NETなんですが、
.NETって2003ですよね。
0806デフォルトの名無しさんNGNG
VC6でも、VS2003でも
列の表示できないな。

VSで行の表示が追加されたぐらいだ。
0807デフォルトの名無しさんNGNG
列の表示って一見役に立ちそうでまったく役に立たないからな。
0808デフォルトの名無しさんNGNG
>806
そうですか、ありがとうございました。

>807
そんなことはないですよ、かなり役に立ちます。
0809デフォルトの名無しさんNGNG
つーか、なんでもVisualStudioでやろうとするのが間違い。
適当なテキストエディタ用意してVisualStudioに登録しておくのがいいかと。
0810デフォルトの名無しさんNGNG
エディタはVisualStudioのものを使用するに限る。
0811デフォルトの名無しさんNGNG
>809
ツール>外部ツール?
あれは新しく開くから使いにくいのだけれど、ほかに方法があるのか?
0812デフォルトの名無しさんNGNG
そりゃぁ毎回新しく開くエディタが悪い。
0813デフォルトの名無しさんNGNG
Addin
0814デフォルトの名無しさんNGNG
VC++6のときにあった
プロジェクトへ追加 コンポーネントおよびコントロールは
VS2003でなくなっちゃったの?
0815デフォルトの名無しさんNGNG
...
0816デフォルトの名無しさんNGNG
詳しい人教えてください。

CImageで読み込んだ画像をIntegerのフィールドに
転送したいのですが、GetPixelを使うと遅すぎてつらいです。
なにか良い方法はないでしょうか。

画像サイズは4800 x 4800 の、BITMAPを読み込んだものです。
色数は 1ビット、および8ビット(モノクロ256階調)です。
転送先は、new int[4800*4800] で、書き込みは、転送元が
白でないなら、intの特定のビットをONにしています。

高々25Mピクセルの転送に数分(1.4GHz)かかっているので
多分関数オーバーヘッドおよびGetPixelの過剰な処理が効いているのだと考えています。

メモリ転送系で一気にバッファに写す、あるいは少なくとも
CImageの各ピクセルにポインタで直接アクセスしたいのですが。
0817デフォルトの名無しさんNGNG
>>816
それだけの大きさの画像なら、自前でbmpを読むか外部のライブラリを使うなどしたほうが無難な気がする。
0818デフォルトの名無しさんNGNG
>>816
CImage::GetBits()
0819デフォルトの名無しさんNGNG
>>817
若かったころは.magを読み込んで使うミニゲームなど作ったもんですが。
(ロジックの解説を読んでローダを自作しました)
ちかごろとんと根気が無くなってしまいました。

>>818
一度GetBits()を使ったことがあるのですがなんか上手くいかなくて。

たとえば、各ピクセル1バイトなら、GetBits()が返すのが
バッファの先頭バイトなので、
unsigned char* pcTop = (unsigned char*) CImage.GetBits();
と仮定して
cPixelValue = pcTop[4800*y + x];
みたいな感じですか。

あるいは一気に行くことができるのか・・・。

unsigned char pcMegaBuffer = new unsigned char[4800*4800];

memcpy(pcMegaBuffer,pcTop,4800*4800);

0820デフォルトの名無しさんNGNG
>>819
BMPの1ラインは4バイトアラインになっていることに気を付けよう
0821デフォルトの名無しさんNGNG
と思ったけど、4800ピクセルなら関係ないか
0822デフォルトの名無しさんNGNG
>>820,821
すみません。よくわかりません。
16ビット時代のintegerのバイト並びがひっくり返ってるとか
その手の話でしょうか。

あるいは一行の最低単位が4バイトで端っこに余白が出るとか
そっち系ですか?

0823デフォルトの名無しさんNGNG
そっち系です
0824デフォルトの名無しさんNGNG
>>823

ありがとうございます。

今、GetBits()を使って得た番地をもとに
1ピクセル1ビットのフィールドをintのフィールドに転送する
ループを組み立て中なので、まもなく勝利か玉砕の報告を
させていただきます。m(_ _)m
0825デフォルトの名無しさんNGNG
>>788
リファクタリングは「機能」ではない。
0826デフォルトの名無しさんNGNG
>>816
GDI++はアホのように重いから・・・使うな。
0827デフォルトの名無しさんNGNG
>>826
そんなもん人の勝手
0828デフォルトの名無しさんNGNG
とりあえず動作しました。

 踏んだ地雷
・GetBits()が返していたのは実は「ビットマップバッファの末尾近く」のほうで
 そこから先をアクセスしようとしてアクセス違反。(前回の失敗はこれらしい)

 自爆
・向きを間違えて水平鏡面転送してしまい、確認するのに小1時間。

 埋め込んだ地雷
・「末尾近く」ってどこ?なんか転送がずれるんですけど。
 とりあえず謎の定数を埋め込んでおおむね転送可能にしたけれど
 完全に一致してるんだろうか。

・仕様
 最終1ラインでアクセス違反が出るので最後1ラインだけ転送せず。
 まーいーや。端っこはどうせ使わないし。ケンチャナヨ〜

というわけで3分近くかかるため敬遠されていた函数群が
1秒強まで短縮できたので、判定は「大勝利」ということで。

皆様有難うございました。m(_ _)m

さて、飯でも食いながら戦後処理(ソースをにらんで作ったきり忘れ去られた
函数群を発掘する。動作不明のショートカットキーを紙に書き出す)でも
はじめます。

0829デフォルトの名無しさんNGNG
>>828
CImage::GetBits()は
「返されるポインタは、座標 (0, 0) のピクセルを指します。」
らしいよ。
0830デフォルトの名無しさんNGNG
bmpは上下反転している罠。
0831デフォルトの名無しさんNGNG
このサイトのプログラムはレベル高いほうなのか?
http://deepbluesky.hp.infoseek.co.jp/index.html
0832デフォルトの名無しさんNGNG
>>831
そのサイトのどこにプログラムが?
0833デフォルトの名無しさんNGNG
表示でソースで見れるんじゃないですか?
0834デフォルトの名無しさんNGNG
>>830
だから?
0835デフォルトの名無しさんNGNG
天地無用
0836デフォルトの名無しさんNGNG
つか、もうVC++の時代は終わったから初心者諸君
無理して勉強する必要はないよ
0837デフォルトの名無しさんNGNG
またDel厨か!!
0838デフォルトの名無しさんNGNG
いえ、C#厨ですが、何か問題でも?
0839デフォルトの名無しさんNGNG
Visual C++で質問があります。
ダイアログボックスにドラッグドロップを使って、ファイル名を選択できるように
したいのですがやり方がわかりません。
プロパティで"ドラッグドロップを許可"にチェックをいれましたが、ここから先が
わかりません。ご教授ねがいます。
0840デフォルトの名無しさんNGNG
以下のプログラムをWinXPで実行すると問題ないんですが
以前、9x系OSで試した所、失敗した様な記憶があります。
テストしようにも、今現在 9x系OSの環境が無いのでテスト出来ません。
宜しければどなたかお教え願いませんでしょうか?

CFile File;
char path[_MAX_PATH];

::GetModuleFileName(NULL, path, _MAX_PATH);
if(!File.Open(path, CFile::modeRead)){ TRACE("Error!\n"); }
File.Close();
0841デフォルトの名無しさんNGNG
>839
とりあえずヒント
1.ダイアログボックスの「ドラッグドロップを許可」を有効にする
2.「WM_DROPFILES」メッセージハンドラを用意し、処理する
0842デフォルトの名無しさんNGNG
>>840
ファイル共有違反になるね。
CFile::modeRead | CFile::shareDenyWrite
なら開けるよ。
0843デフォルトの名無しさんNGNG
>>841
アドバイスありがとうございます。 
力不足により、まだ解決していないため、再度アドバイスお願いします。

ダイアログボックスの「ドラッグドロップを許可」を有効にし、
WM_DROPFILESのメンバ関数OnDropFiles(HDROP hDropInfo) を作成するところまでは
できましたが、ファイルをドロップしても、この関数が呼ばれません。
この関数が呼ばれれば、処理はなんとかなると思うのですが、関数が呼ばれない理由がわかりません。
0844デフォルトの名無しさんNGNG
DragAcceptFiles
0845デフォルトの名無しさんNGNG
>843
試してみたら確かに呼ばれない・・・と思ったらCAboutBoxに作ってた。

後は、ClassViewからCHogeDlgを右クリックして「Windows メッセージハンドラの追加」
「クラスで使用可能なメッセージ用フィルタ」を「ウィンドウ」にして「W_DROPFILES」を選択し
「ハンドラの追加」ボタンをクリックしてますか?

当方、VC++6.0(SPなし)にて呼ばれることを確認。
0846デフォルトの名無しさんNGNG
>>845
アドバイスどうもです。
845さんが書かれている通りのやり方で、メンバ関数OnDropFiles(HDROP hDropInfo)を
インプリしてますが、未だに上手くいってません。

>>844,845
DragAcceptFiles() をOnInitDialog() に書いて見ると、全てのダイアログでOnDropFilesが
呼ばれるようになりました。 ですが、ドラッグドロップを許可」を有効にてある、ダイアログ
だけは、反応がありません。

再度質問ですが、
1. ダイアログのプロパティで 「ドラッグドロップを許可」を有効にした場合、DragAcceptFiles()を
記述する必要があるのか?
2. 記述する必要がある場合、どこに記述するのか?

もしわかりましたら、よろしくお願いいたします。
0847デフォルトの名無しさんNGNG
>>846
自己レスです。

状況がわかりにくくすみません。もう一度整理します。
やりたいことは、ダイアログアプリケーションに貼り付けた、エディットBox で、ドラッグ&ドロップをしたい です。
エディットBoxのEditプロパティで「ドラッグドロップを許可」を有効にしていますが、OnDropFiles が上手くよばれません。

試しに、 全体のダイアログプロパティで同様のことをやってみたら、OnDropFilesが呼ばれました。
先ほど自分で質問した、"DragAcceptFiles() をOnInitDialog() に書いて見ると〜" というのは、たぶんこのことと
同じことをやっているのだとようやく理解できました。

エディットBoxでドラッグ&ドロップを受けたい場合には、なにか特別のやり方があるのでしょうか?
0848デフォルトの名無しさんNGNG
>846
1.どちらかを行えばいい。両方やると重複するだけ。
2.記述する場所について特に決まりはない。OnCreateやOnInitDialogなど。

>847
CEditをサブクラス化すればできなくはないが、
よりお手軽な方法はダイアログ内の座標で判断するとか。
0849デフォルトの名無しさんNGNG
D&Dをエディットだけに限定したいなら
エディットをサブクラス化して、エディット宛てのWM_DROPFILESを処理するのが簡単なのでは。
0850デフォルトの名無しさんNGNG
親のOnDropFilesが呼ばれているから
子供(Edit)のOnDropFilesが呼ばれていないだけでは?
(メッセージは1つしか飛ばない)
0851840NGNG
>>842
なるほど、そうでしたか。
お陰で解決出来そうです。
情報をありがとうございました。
0852デフォルトの名無しさんNGNG
みなさん、ぶっちゃけ、Document/Viewつかってる?
漏れはいっつもダイアログベースばっかりだから疑問に思いました。

Document/Viewだとコントロール使えないから不便で仕方ない
FormViewつかえばいいが、それだったらはなからダイアログベースで問題ない
0853デフォルトの名無しさんNGNG
>>852
君はVBを使ってた方が良い
0854デフォルトの名無しさんNGNG
basicはかけません
0855デフォルトの名無しさんNGNG
>>852
Document/Viewなんてそんなにこだわる必要ないよ
ほとんどの人は
Documentについて知り過ぎたView
Viewについて知り過ぎたDocument
なんて実装してるから、Document/Viewの意味がない
0856デフォルトの名無しさんNGNG
過ぎたの度合いに寄るが
ふつうViewはDocumentを熟知している。
0857デフォルトの名無しさんNGNG
ドキュメントへの依存が非常に強固なのはDoc/Viewの特徴だろ。
それを避けたければ、コントローラを分離してあるMVCを採用するべきだし
当然関連が分散して保守もその分難しくなる。
0858デフォルトの名無しさんNGNG
Viewが多数存在し、それぞれが連動させようという状況で、Doc/Viewの方がすっきりすると思う
厄介なのはビューがドキュメントをひとつしか扱えない点とか、ダイアログ表示にしずらい部分か
0859デフォルトの名無しさんNGNG
>>858
なにいってるの?
まったく意味がわかないんですが
0860デフォルトの名無しさんNGNG
しづらい
0861デフォルトの名無しさんNGNG
>>848
とりあえず、ダイアログでメッセージを受け取る方法でプログラムを完成させました。
いろいろとアドバイスありがとうございました。

0862デフォルトの名無しさんNGNG
C:\Program Files\Microsoft Visual C++ Toolkit 2003\vcvars32.bat
cl /01 main.cpp /LD /link user32.lib /def:ts.def

とやると、windows.hが無いぞと怒られます。
Microsoft Visual C++ Toolkit 2003を使ってるのですが、どうやれば良いのでしょうか?
0863デフォルトの名無しさんNGNG
Toolkit 2003 単体だけでは無理
0864デフォルトの名無しさんNGNG
CScrollViewが派生元Viewを使っているのですが
スクロールバーが表示されないのですがどうすれば
表示されるのですか?
0865デフォルトの名無しさんNGNG
>CScrollViewが派生元Viewを使っているのですが
状況がわからんん
0866デフォルトの名無しさんNGNG
わからんなら書き込みするなぼけ
0867デフォルトの名無しさんNGNG
「ですが」がくどいYO!
0868デフォルトの名無しさんNGNG
わからんなら書き込みするなぼけ
0869デフォルトの名無しさんNGNG
>>864
CScrollViewがウィンドウサイズとスクロール ビューのサイズを比較して、必要なら表示される。
表示がはみ出しているのにスクロールバーが表示されないなら、SetScrollSizes に
指定しているサイズが小さすぎるということ。
0870デフォルトの名無しさんNGNG
書き込みするなぼけ
0871デフォルトの名無しさんNGNG
>>869
Thanx
0872デフォルトの名無しさんNGNG
質問 !!!

皆さん、なぜVC++を使われるのですか?
圧倒的にC++Builderの方がGUIは作りやすいと思うのですが・・・
0873デフォルトの名無しさんNGNG
>>872
自分の場合は、まだ、プログラムを覚えようとしていた時、
買ってもらったのがVC6(アカデミック)だったからかな。
2つ買うのはもったいないでしょ。

商用ソフトを作るときは、BCCでコンパイルしてexeを作る。
Win32API直書きで作るけど、どちらの場合も作りにくいと思った事は無い。
0874デフォルトの名無しさんNGNG
>>872
圧倒的情報量の多さ、高機能なエディタ、コンパイラの最適化が優秀、一応M$製...etc

やっぱり使っている人間が多いというのが大きいかも(必然的に情報量が多くなるので)。
0875デフォルトの名無しさんNGNG
そうだな。昔コンパイラ買おうとした時にボーランドのは老舗とか
盛んに言っててパッケージのデザインも暗くて重苦しい感じだったし、
書籍とかもあんまり無かったのでどうかなぁ〜と思って躊躇した。
VC++は書籍も多かったから色々調べるのに便利だろうし
何より明るいパッケージで取り掛かり易そうな感じがしたからだな。
まあ、何も分からないで買ったんだが、今になってみれば正解だった。
ボーランドはインプライズと社名を変えて再びボーランドに戻る
なんていうことしてるから、やっぱりなんか不安な印象がある。
0876デフォルトの名無しさんNGNG
少し前からいるその変な奴にマジレスすんな。
0877デフォルトの名無しさんNGNG
パッケージの色合いで決める875は、表紙の絵で売上が決まるエロ小説愛読者
と同じルーチンの匂いがする。
0878デフォルトの名無しさんNGNG
このスレは、諸々の事情で VC++ を使用せざるを得ない
奴らが集まるスレだろ。他の言語の素晴らしさを語りたい奴らは
他所でやれ他所で。('A`)
0879デフォルトの名無しさんNGNG
インテリヘンスまんせー。
0880デフォルトの名無しさんNGNG
win32 apiの接頭詞 接尾詞が読めずこんがらかる
ことが多くて困ってます。
接頭詞の略語を解説したページをご存知ありませんか。

http://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&q=api+%95%CF%90%94+%90%DA%93%AA+lp&lr=
と検索してみましたがなかなかヒットしませんでした。
hInstanceのhやlp〜も最初は分からなかったし、
今でも謎なのはLPCTSTR・・
LP-CT-STRだとすると、CTって何だろうとか(^^;

特に2文字略語ですが、機能を理解すれば自明ですけど
理解する過程が大変です。なにとぞ宜しくお願いします。
0881デフォルトの名無しさんNGNG
>>880
CTはconstだったはず
ちがったっけな

ハンガリアン記法

で検索汁
0882デフォルトの名無しさんNGNG
>>881
惜しい。
C は const
T は TEXT(らしい。なぜか。おれはTRANSITIONALのほうがふさわしいと思ってるが・・・。
LPCSTR/LPCWSTRもある。
0883デフォルトの名無しさんNGNG
Visual Studio 2005Express Β1を使っているんですが、
dllファイルを使用するときに、ファイルをそのプロジェクトや
systemディレクトリにコピーせずに、
includeファイルやlibファイルみたいに読込先を指定して
読み込む方法は無いですか?
0884デフォルトの名無しさんNGNG
>>883
1年くらい前にちょろっとやっただけなんですっかり忘れたが、
そん時のソース発見した。
遅延読み込みを使用する。

#include <delayimp.h>
#pragma comment( lib, "delayimp.lib" )

をヘッダに入れて

FARPROC CALLBACK DelayLoadHook(unsigned dliNotify, PDelayLoadInfo pdli)
{
if ( dliNotify==dliNotePreLoadLibrary )
{
TCHAR dllPath[MAX_PATH];
PathCombine( dllPath, _T("DLLの場所\\"), pdli->szDll );
return reinterpret_cast<FARPROC>( LoadLibrary( dllPath ) );
}
else return 0;
}

とか作って

extern "C" PfnDliHook __pfnDliNotifyHook2 = DelayLoadHook

っていれる。
コンパイラオプションで目的のDLLを遅延読み込み指定する。

で出来ると思う。
多分。
0885デフォルトの名無しさんNGNG
TTCHAR
LPlong poniter
hhandle
Cconst
0886デフォルトの名無しさんNGNG
881 882 885さん、レスありがとうございます。

ハンガリアン記法は一般的なものだと思ってたんですが、
もともとMSの人の発案なんですね。検索したらいくつか
略語の解説がみつかりました。

CTでひとまとまりだと思ってたら、まさか一文字が略語とは
気づきませんでした。女子高生のさらに上をいきますね(^^;



0887デフォルトの名無しさんNGNG
*用途で覚えておこう

Cが付くのはconstで読み出し用
Cなしは書き込み用

Tが付くのはUNICODE互換でワイドとの切り替えあり
0888デフォルトの名無しさんNGNG
STLPortってなんですか?
0889デフォルトの名無しさんNGNG
参考書をみた
↓
入力
↓
動いた
↓
ちょっと変えてみる
↓
で?
↓
何も得ない

って状態なんだが・・・・・・
あと、コンパイルに時間が掛かるのは仕方ないのかな・・・・・・(体感10秒くらい)
0890デフォルトの名無しさんNGNG
>>889
ああ、30分とか1時間とかじゃないんだ
幸せだな
0891デフォルトの名無しさんNGNG
>>889
プリコンパイル済ヘッダー
#include "stdafx.h"

ってのを使うと、コンパイルが速くなるよ。
新規にプロジェクト作って、
標準的な"Hello World! アプリケーション"
で作ると、stdafx.hとか、stdafx.cppってのが作られるけど、
これらが速くしてくれる。

今はちょっと長々と説明できないんで、これにて。
0892デフォルトの名無しさんNGNG
未だにVC++5.0使ってます。

lseek64()を使ってますが、2GB以上のファイルを扱えず、
2の31乗以上の値を指定するとエラーになります。

どうすればいいですか?
0893889NGNG
>>891
�dクス。やってみる。
0894デフォルトの名無しさんNGNG
>>892
OSとHDDのフォーマット方法も関係するけど
0895892NGNG
>>894
OSはWinNT4.0SP6、HDDはNTFSです。

ソースファイルに何らかのマクロを定義すれば扱えるように
なるとか、そういう方法があればいいのですが・・・
0896デフォルトの名無しさんNGNG
>>889
新規プロジェクトで、初めからstdafx.hとかある場合は、
そのstdafx.h内で、よく使うヘッダーをincludeする。

手動でやる場合は、
:stdafx.h、stdafx.cppを新規にプロジェクトに追加
(どっか別に新規プロジェクト作って、そのstdafx.h、stdafx.cppを持ってきた方が無難かも)
:よく使うヘッダーは、stdafx.hでincludeする。
:すべてのcppファイルの先頭で、stdafx.hをincludeする。
:プロジェクト「設定」>「c/c++」>カテゴリ「プリコンパイル済みヘッダー」>「プリコンパイル済みヘッダー(,pch)を使用」
:「このヘッダーまで」の欄に「stdafx.h」を入力してOK。

これで速くなると思う。初回は変わらんかもしれんけど、ちょっとした修正程度なら、抜群に速くなると思う。
ただ俺もそこまで詳しくないから、足りん部分があるかもしれんけど、
とりあえず俺はこれで毎回1分30秒くらいかかってたのが、3〜5秒になった。
0897デフォルトの名無しさんNGNG
別に時間なんかかかってないだろ
アホな初心者の独り言だってば
0898デフォルトの名無しさんNGNG
>>892
long 桁以上なら2回に分けてseekする。
0899デフォルトの名無しさんNGNG
>>898
2回に分けただけじゃ2^33-2バイトしか扱えないぞ。
0900デフォルトの名無しさんNGNG
んじゃ、3回に分けようか。
0901デフォルトの名無しさんNGNG
>>887
const 定数はそういう意図がなんですか。
TextはそれでUnicodeなんですね。

意味が分かると段々ソースを眺めても頭痛がおこら
なくなりました。ありがとうございます。
脳内の問い合わせエラーが減ったのかも(^^;
0902デフォルトの名無しさんNGNG
>>901
Unicodeじゃねーよ・・・何勝手にあさっての方向に脳内補完してんだよ。
0903デフォルトの名無しさんNGNG
>>902
ちょっと知ってるからって偉そうにすんなよ
ヲタ君w
0904デフォルトの名無しさんNGNG
UNICODE対応が
_UNICODE,UNICODEと二つに分かれてるのは何でだろ
0905デフォルトの名無しさんNGNG
hoge.hを編集中にhoge.cppを編集したい、また逆に
hoge.cppを編集中にhoge.hを編集したいことってありますよね?

その際にキーボードから一発でできませんか?
BCBだとCtrl+F6でいけるんだけど・・・

VS2003を使っています。
0906デフォルトの名無しさんNGNG
そんなアドインマクロをどこかで拾った事あるよ VC6.0だけど
まぁ難しくないから作ってみれば
0907デフォルトの名無しさんNGNG
あんたアフォでつか?
作れるくらいなら最初から質問しない
0908デフォルトの名無しさんNGNG
>>904
_UNICODEはOS依存APIの切り替え指定、UNICODEはCRTのテキストルーチンマッピング(_tcs系)
0909デフォルトの名無しさんNGNG
>>908
逆だったと思うが…
0910デフォルトの名無しさんNGNG
de aruka. taigi >>902
0911デフォルトの名無しさんNGNG
Windowのサイズを変更したいんだけど、どうすればいいの?
0912デフォルトの名無しさんNGNG
>>911
Alt+Space S ← で幅を変えられる。
高さを変えたいなら ↓ だ。
0913デフォルトの名無しさんNGNG
>>905
その質問と回答って最近別スレで見た
マルチはだめだよ
0914デフォルトの名無しさんNGNG
>>912
SetWindowPosのことだと思われ。
分かってて書いてるのかも知れんが。
0915デフォルトの名無しさんNGNG
>>905
http://www.google.com/search?num=50&lr=lang_ja&q=h+cpp+%E5%88%87%E6%9B%BF+%E3%83%9E%E3%82%AF%E3%83%AD
0916デフォルトの名無しさんNGNG
始めまして VC初心者です
Win2k VC6 を使ってます。

指定したディレクトリ以下のファイル・サブディレクトリ(もちろん中身あり多階層)
全てを削除するプログラムを書きたいのですがさっぱりわかりません。
ファイルを消すのは FindFirstFile と FindNextFile で検索して
順次 DeleteFile で消していくという方法でできたんですが、
ディレクトリが絡んでくるとさっぱりわかりません・・・ orz
とくに多階層になってるとどのような手法で消していけばいいのかさっぱり・・・

どなたかこのド素人に手法を伝授してください
0917デフォルトの名無しさんNGNG
>>916
*全体をループで構成する
*見つけたのがディレクトリなら中身がないか確認する
*中身を消す(中身に中身があったらまたループ)
*中身がなくなったらディレクトリを消す
*全部なくなるまで繰り返す
0918デフォルトの名無しさんNGNG
>>916
DeleteAllFile(char *){
フォルダを見つけたらDeletAllFile();
}
みたいな感じで再帰的にやってみたら?
0919デフォルトの名無しさんNGNG
>>916
system("deltree /y 削除したいディレクトリ");
0920デフォルトの名無しさんNGNG
ゴミ箱に移動汁
0921デフォルトの名無しさんNGNG
SHFileOperationでいっぺんにできなかったっけ
0922916NGNG
アドバイスありがとうございます
なるほどなるほど関数作って while あたりでループ組んで
FindFirstとNext でフォルダを見つけたら再帰的に自分与呼び出せばいいわけですね
で、ファイルがなくなった時にそのフォルダを消してから return していけば
全てのファイル処理が終わったときには全部のファイルとサブディレクトリが消えてるってわけですね。
確かにこれならいけそうです。
この方法なら応用すれば、指定ファイルだけ消していったりもできそうですしね。
ありがとうございます。この方法でがんばってみます!
0923デフォルトの名無しさんNGNG
>>922
boostだと
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
int main () {
boost::filesystem::path dir ("hoge");
boost::filesystem::remove_all (dir);
return 0;
}
でhoge以下が消せます
0924デフォルトの名無しさんNGNG
Visual Studio 2003ですが、プロジェクトのDEBUGディレクトリに
IDE上でファイルをコピーするには、どうすればいいんでしょうか?
プログラムから、カレントディレクトリにある画像ファイルを読み込みたいんですが。
0925デフォルトの名無しさんNGNG
VS2003を使っているのですが、Bitmapをうまくリソースに追加できません。
アイコンのような画像なら読み込めるのですが、
写真などは何度やってもできません。
宜しくご指導お願い致します。
0926デフォルトの名無しさんNGNG
>>754辺り
0927925NGNG
ありがとうございました。
できました。
0928デフォルトの名無しさんNGNG
Appウィザードで適当なプロジェクト名をつけた。ABC
するとCABCView,CABCDoc等ができるがこれを簡単に変更することはできませんか?
0929デフォルトの名無しさんNGNG
ウィザードでプロジェクト作るときに変更できるよ。
0930デフォルトの名無しさんNGNG
コードフォーマットの整形はどうやるんですか?
0931デフォルトの名無しさんNGNG
>>929
プロジェクトを作ってしまった後に変更したいのですが
無理ですか?
0932デフォルトの名無しさんNGNG
>>931
全部書き換えればいいじゃん。
0933デフォルトの名無しさんNGNG
>>932
おまえ、バカだろw
0934デフォルトの名無しさんNGNG
>>933
>931よりはましだと思う。
0935デフォルトの名無しさんNGNG
 VC2003学生限定PACKを買いました。現在は評価版を使ってます。
新しいプロジェクトを造ろうとメニューを見るとマネージドC++プロジェクトのアイコンがありません。
評価版には入ってないのでしょうか。
0936デフォルトの名無しさんNGNG
全部書き換えるくらいの根性が無くてどうする。
やれ
0937デフォルトの名無しさんNGNG
>>936
君らが書いてるような小さなサンプルプロジェクトならいいんだけどねw
0938デフォルトの名無しさんNGNG
>>937
大規模開発やってらっしゃるのですね・・・
アドインがあるのでインストールしてください。
というか、おそらくすでにインストールされているはずです。

あなたのプロジェクトの命運は、私たち2チャンネラに左右されるわけですね。
微力ながら一生懸命尽くしたいと思います。
0939デフォルトの名無しさんNGNG
>>935
コンパイルオプション。
0940デフォルトの名無しさんNGNG
>>937
お前本当にプログラム作れんのか
書替えツールを自作すればいいんだよ役立たず
0941デフォルトの名無しさんNGNG
というかAppWizardで作られるファイルなんてそんな多くないはずだが。
0942デフォルトの名無しさんNGNG
馬鹿ばっかり
0943デフォルトの名無しさんNGNG
>>940
じゃ、おまえは必要なものすべて自作してるのか?
「やってますが、なにか?」なんて台詞吐くつもりなら
最低でもOSから自作してね
0944デフォルトの名無しさんNGNG
ここで煽ってる暇あったら書き換えろ。
AppWizardで作ったならファイル数は10もないだろ。
0945デフォルトの名無しさんNGNG
 ∧∧   Sir!
. ( ゚Д゚)ゝ スレのタイトルを読み直した方がよろしいかと思います!
 |  |
0946デフォルトの名無しさんNGNG
誰が必要なものすべて作れなんて話してるんだ
0947デフォルトの名無しさんNGNG
作らなくても在りますよ^^
0948デフォルトの名無しさんNGNG
928 :デフォルトの名無しさん :04/10/15 01:12:24
Appウィザードで適当なプロジェクト名をつけた。ABC
するとCABCView,CABCDoc等ができるがこれを簡単に変更することはできませんか?

932 :デフォルトの名無しさん :04/10/15 02:34:18
>>931
全部書き換えればいいじゃん。

933 :デフォルトの名無しさん :04/10/15 02:38:04
>>932
おまえ、バカだろw

936 :デフォルトの名無しさん :04/10/15 04:10:34
全部書き換えるくらいの根性が無くてどうする。
やれ

937 :デフォルトの名無しさん :04/10/15 05:21:57
>>936
君らが書いてるような小さなサンプルプロジェクトならいいんだけどねw
0949デフォルトの名無しさんNGNG
検索&置換すりゃええんでねぇのか。
100、200くらいなら書き換えるのも大変じゃないだろうに。
ファイル名だって、10本そこそこだろう。
0950デフォルトの名無しさんNGNG
バカにされたからどんどん話を大きくしようとしてるのがバレバレだね。
0951デフォルトの名無しさんNGNG
ファイルの書き換えもできないのに大規模開発かよ
0952デフォルトの名無しさんNGNG
ほんと、ここ奴らってショボイのしか書いたことないんだね
そうファイル数100を超えるような中規模程度のものすら
知らないんだろうhw
0953デフォルトの名無しさんNGNG
だからスクリプトでも組めよ 無能だなぁ
0954デフォルトの名無しさんNGNG
なんかすごいことになってるなw
というかプロジェクト作り直せ
0955デフォルトの名無しさんNGNG
>>928
自分は、コンソール/ウィンアプリでしかやった事無いけど、
同じようにプロジェクト名を変えたくなった事がある。

自分の場合は、新しいプロジェクト(ワークスペース)を作って、
そのワークスペースのフォルダに全てのファイルをコピー。

ウィンドウ上のコマンドのプロジェクト→プロジェクトへ追加→ファイル
を選んで、ファイルを新しいプロジェクトに追加する。

それからビルドすれば完成。
0956デフォルトの名無しさんNGNG
↑真性アフォハケーン
0957デフォルトの名無しさんNGNG
100で中規模?ありえねぇ・・・。
0958デフォルトの名無しさんNGNG
>>952
元の質問>>928がAppWizardが作ったファイルを変更したいって質問だろ。
他のファイルが100あろうが関係無い。
0959デフォルトの名無しさんNGNG
>>958
同意。

もしかして、大規模(?)プログラムの全部の関数を、
Doc,Viewに突っ込んでるのかも知れん。
Document クラスに500近く関数あったら萎えるなぁ。
0960デフォルトの名無しさんNGNG
だから手作業で直すのに時間かかりそうなら
スクリプトでもいいし、マクロでもいいし、簡単なプログラムでもいいし、
それなりに頭使えばたいして時間はかからんだろう。
それぐらいできないようならプログラマには向いてない。
0961955NGNG
>>956
すまん。そのタイプのプロジェクトはやった事無かったから。
0962デフォルトの名無しさんNGNG
そろそろ次いってみよう
0963デフォルトの名無しさんNGNG
たくさんレスしてもらって
幸せな奴だな。
0964デフォルトの名無しさんNGNG
次スレたってる?
0965デフォルトの名無しさんNGNG
ちんこはたってますが、なにか?
0966デフォルトの名無しさんNGNG
ワークスペース名を(WORKSPACE)します。
ある構造体をViewヘッダファイルで宣言します(構造体名:KOZO)。
その構造体を引数とした関数を作成します。(関数名Func)

そうすると、void CWORKSPACEView::Func(KOZO *kozo)
というのができあがりますが、ClassViewから、その関数名を
ダブルクリックしてもジャンプできません。

そこでKOZOの前にCWORKSPACEView:を追加するとジャンプできるのですが、
kozo->と書いたときに現れるメンバが自動表示されません。

これはどうすれば表示されるようになるのでしょうか。もしくはジャンプする方法で
何か違う方法があるのでしょうか。
0967デフォルトの名無しさんNGNG
>>966
とりあえずコンパイル通れば、あとは気にしない。
ジャンプしたいところにマークでもつけとけばいい。
0968デフォルトの名無しさんNGNG
あのC言語って何ですか?C言語ってD前だからC何ですか?
0969デフォルトの名無しさんNGNG
ボケたつもりなんだろうが
そ の 通 り だ
0970デフォルトの名無しさんNGNG
大規模開発やっているなら、すでにアドインが入っているはずですよ^^
上司か同僚に聞いてみたらいいですよ^^

入っていないなら、あなたのプロジェクトは手作業で書き換える開発スタイルだってことです^^
0971デフォルトの名無しさんNGNG
>>968
メイドさんしぃしー(製作・販売ライブドア)がこの言語によって作られたから。
0972デフォルトの名無しさんNGNG
#include <functional>
struct Equala : public binary_function < CDeviceBase*,CDeviceBase*,bool >
{
public:
bool operator()(CDeviceBase* lhs,CDeviceBase* rhs) const
{
return *lhs == *rhs;
}
};

*******\Device.h(34): error C2504: 'binary_function' : 定義されていない基本クラスが宣言されています。
ってなんで?
0973デフォルトの名無しさんNGNG
>>972
std::binary_function
?
0974デフォルトの名無しさんNGNG
>>973 さん
マジありがとうございます。
解決できました。

感謝感激
0975デフォルトの名無しさんNGNG
さて蒸し返すぞ。
ファイルが100あろうがなんだろうが打ち変えろ。
置換で一つ一つ確認しながらやれば一日でできるだろ。

そもそもそんな規模のものにABCとかつけるなよ。
0976デフォルトの名無しさんNGNG
次スレは、どこかのスレを乗っ取りたいな。
JavaスレあたりでVCの話がしたい・・・
0977デフォルトの名無しさんNGNG
VCは糞
Windowsアプリの作成はBCB最強
まちがいない
0978デフォルトの名無しさんNGNG
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1065535118/
0979デフォルトの名無しさんNGNG
エディットコントロールに文字を転送して表示してるのですが
なぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
お願いします。教えてください。お願いします。お願いします。お願いします。
0980デフォルトの名無しさんNGNG
どこかにスクリーンショットでもUPしてみたら
0981デフォルトの名無しさんNGNG
ダイアログだけのプログラム作ったんだけど、ダイアログ動かせない・・・ウィンドウタイトル表示されない・・・
環境VisualStudio.Net2003
//dlgtest01.cpp

#include <windows.h>
#include "resource.h"
BOOL CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE hInst;
int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
LPSTR lpsCmdLine, int nCmdShow)
{
hInst = hCurInst;
DialogBox(hCurInst, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc);
return 0;
}
BOOL CALLBACK DialogProc( HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
{ switch (msg) {case WM_COMMAND:
switch (LOWORD(wp)){
case IDEND:
PostQuitMessage(0);
break;
} case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hDlg, msg, wp, lp));  }
return 0;
}

0982979NGNG
こんな感じになります。左がエディットコントロールで右がコピペーしたやつです
http://cgi.f29.aaacafe.ne.jp/~retoroup/gazoubbs/src/1097870944522.jpg
0983デフォルトの名無しさんNGNG
マルチ
http://pc5.2ch.net/test/read.cgi/tech/1095534704/629
0984デフォルトの名無しさんNGNG
>>979
等幅フォント使え
とマジレスしてみる
0985979NGNG
>>983
うるせぇよボケ。マルチの何が悪いんだタコ。スルーされたんだから
同じスレで質問繰り返すのとなんか違いあるか?あ?コラ。マルチマルチほざいてんじゃねぇよカス。

>>984
ありがとうございます。フォント変えれるとは知りませんでした
0986デフォルトの名無しさんNGNG
0987デフォルトの名無しさんNGNG
>>985
983と984への対応の違いにワロタ
0988デフォルトの名無しさんNGNG
>>985
そりゃぁ、スルーされるような程度の質問するからだろ。
あっちは初心者向けとは謳ってないからな。
つーか、開き直ってんじゃねぇよ、カス。
0989デフォルトの名無しさんNGNG
★初心者にVisual C++を教えるスレ★ Part15
http://pc5.2ch.net/test/read.cgi/tech/1097880265/
0990デフォルトの名無しさんNGNG
ウオッチウィンドウの値のカラムに赤文字で表示されるのは
どういう意味ですか?
0991デフォルトの名無しさんNGNG
変化したんだろう
0992デフォルトの名無しさんNGNG
>>988
必死だな (ゲラゲラ
0993デフォルトの名無しさんNGNG
>>979-988
どうやらあっちのスレでもスルーされていた訳ではなさそうだ
http://pc5.2ch.net/test/read.cgi/tech/1095534704/629-
0994デフォルトの名無しさんNGNG
994
0995デフォルトの名無しさんNGNG
995なら死ぬ
0996デフォルトの名無しさんNGNG
>>995
南無
0997デフォルトの名無しさんNGNG
979 名前:デフォルトの名無しさん 投稿日:04/10/16 03:15:24
エディットコントロールに文字を転送して表示してるのですが
なぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
お願いします。教えてください。お願いします。お願いします。お願いします。
0998デフォルトの名無しさんNGNG
979 名前:デフォルトの名無しさん 投稿日:04/10/16 03:15:24
エディットコントロールに文字を転送して表示してるのですが
なぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
お願いします。教えてください。お願いします。お願いします。お願いします。
0999デフォルトの名無しさんNGNG
979 名前:デフォルトの名無しさん 投稿日:04/10/16 03:15:24
エディットコントロールに文字を転送して表示してるのですが
なぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
お願いします。教えてください。お願いします。お願いします。お願いします。
1000デフォルトの名無しさんNGNG
荒らすなや
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。