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


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

★初心者にVisual C++を教えるスレ★ Part23
251 名前:デフォルトの名無しさん :2006/04/15(土) 23:54:47
>>249
VC++の本を買っちまったならまずはじめることだな本によってはC++の説明をしながらのものもある。

252 名前:デフォルトの名無しさん :2006/04/16(日) 00:00:38
>>243
の質問と回答って、レンプレ入りしてもいい気がするんだ。

>>248
IDE もしくは Document Explorer の ツール -> オプション -> 国際対応の設定 とか?

253 名前:デフォルトの名無しさん :2006/04/16(日) 11:48:22
.net2003(spoken)を使っていて
猫でもわかるwindowsプログラミングの本の付録についている
何も無いウィンドウを描画するプログラムというサンプルをビルドしました。

2003環境では普通にコンパイル通って問題無いのですが
この度2005に移行したら
エラー1error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。MSVCRTD.lib
エラー2fatal error LNK1120: 外部参照 1 が未解決です。C:\Documents and Settings\***\My Documents\Visual Studio 2005\Projects\pra_01\Debug\pra_01.exe

というエラーが出てビルド出来ずに困っています。
初心者なのでエラーの意味もわかりませn。ソース見ないとわかんないかもしれませんが…・

環境移行した理由は学校で使う環境が2005なので合わせる為です。

254 名前:デフォルトの名無しさん :2006/04/16(日) 11:56:13
はじめまして。WM_MOUSEMOVEメッセージに関する質問です。
WM_MOUSEMOVEイベントが起こると関数A()が実行されるようにしてるんですが、
A()は処理が重いため、マウスを速く動かすとA()の処理が終わる前に
WM_MOUSEMOVEメッセージが更新されてしまい、マウスを速く動かしている間は
A()の処理が完了してくれません。
私としては、A()の処理が終わってから
次のWM_MOUSEMOVEメッセージを処理しにいってほしいのですが、
どのようにすれば実現できるでしょうか?


255 名前:デフォルトの名無しさん :2006/04/16(日) 12:15:39
>>253
.NET 2003のソリューションを2005で開くよりは、
2005で新しく作ってそこへソースコードをコピペで持ってきたほうがいいと思う。
http://www.kumei.ne.jp/c_lang/net2005/project.htm
http://www.kumei.ne.jp/c_lang/net2005/sample.htm

256 名前:253 :2006/04/16(日) 15:01:22
>>255
ありがとうございます。

2005で新規プロジェクトを作製し
その後ソースのみのコピーで253の事象が発生するのです。。。

猫さんの所のを見て色々やってみたのですが…うーん

257 名前:デフォルトの名無しさん :2006/04/16(日) 15:25:37
>>256
つ[プロジェクトの形式]

258 名前:デフォルトの名無しさん :2006/04/16(日) 15:29:25
何も無いウィンドウを描画するプログラムなら
ウイザードで作ればいい。

259 名前:デフォルトの名無しさん :2006/04/16(日) 16:57:35
>>254
A()を別スレッドで動かさない限り
>()の処理が終わる前に WM_MOUSEMOVEメッセージが更新されて
は起こりえない。

260 名前:デフォルトの名無しさん :2006/04/17(月) 22:05:43
>>259さん
レスどうもありがとうございます。
詳しく調べてみたところ、A()の処理は完了していました。
InvalidateRectのあとに、UpdateWindowを実行していなかっただけでした。
お手数をおかけしました。

261 名前:デフォルトの名無しさん :2006/04/18(火) 05:01:53
const array[10];

みたいな事をしたいのですがどうすればいいのですか?

262 名前:デフォルトの名無しさん :2006/04/18(火) 09:01:40
よくわからんが…コレか?

http://www.google.co.jp/search?num=50&lr=lang_ja&q=%E9%85%8D%E5%88%97+%E5%88%9D%E6%9C%9F%E5%8C%96

263 名前:261 :2006/04/18(火) 11:52:32
>>262
いえ、constで定義されてる物を配列で使いたいのですが
出来なくてこまってます。

264 名前:デフォルトの名無しさん :2006/04/18(火) 11:58:00
>>261日本語でおk

265 名前:デフォルトの名無しさん :2006/04/18(火) 12:43:21
>>263
どんなソース書いたのよ?

266 名前:デフォルトの名無しさん :2006/04/18(火) 20:22:03
ふつうに、const T array[10]とかやれば、array[1]はconst Tになるはずだが。

267 名前:デフォルトの名無しさん :2006/04/19(水) 00:20:07
型をかかずに

const array[10]

とそのまま書いたに3000点。

268 名前:デフォルトの名無しさん :2006/04/19(水) 08:12:13
ゴールデンハンマー

269 名前:261 :2006/04/19(水) 21:17:19
ビンゴー

270 名前:デフォルトの名無しさん :2006/04/20(木) 17:41:37
はじめまして。
VC初めて1週間の初心者です。質問させてください。
環境はVisual Studio 2005のVC++MFCです。

@ダイアログを表示する
AOKが押されるとHTMLのページを開く(CreateProcess使ってます)
B開いたページのテキストボックスに自動的に文字列を入力する
※HTML側の設定でテキストボックスにフォーカスが当たった状態になります。
※文字列はプログラム内で固定で持っているものを使います。

上記のようなことを行いたいと思っているのですが、
Bのやりかたがわかりません。
どのような関数を使えばよいのか教えてください。
よろしくお願いします。


271 名前:デフォルトの名無しさん :2006/04/20(木) 18:45:58
自分でHTML取ってきてフォーム解析して自分でテキストボック表示して
そこにテキスト表示した方が100倍ぐらい楽だと思う。
とりあえずそれやってみろ

272 名前:デフォルトの名無しさん :2006/04/20(木) 18:56:58
自動ログインプログラムを書きたいようにも見える

273 名前:270 :2006/04/20(木) 19:19:38
>>271
実はそれも作ってあるのですが、
そのページでログインした後にもう一回パスワード入力画面が出るような作りで、
その2枚目に自動入力させるようなものが作れないかなと思いまして。

>>272
そうです。
その練習として作っています(;´Д`)
ログインでユーザ名とパスワード入力するのまんどくせーから自動化しろ言われてまして。



274 名前:デフォルトの名無しさん :2006/04/20(木) 19:33:51
firefox使えあと氏ね、とか答えてあげてください(w

275 名前:270 :2006/04/21(金) 12:03:36
一応、自己解決しました。
SendInputでそれっぽいことができましたので、
勉強してみます。
ありがとうございました。

276 名前:デフォルトの名無しさん :2006/04/23(日) 15:45:42
VS8を使っていますが、どうしても解決できないので教えて下さい。
CDialogを継承したCLinkDlgというクラスを作っていますが、
下記のエラーがでて、コンパイルが通りません。

エラー 1 error C2248: 'CObject::CObject' : private メンバ (クラス 'CObject' で宣言されている) にアクセスできません。c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxcoll.h593
(出力の内容)
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxcoll.h(593) : error C2248: 'CObject::CObject' : private メンバ (クラス 'CObject' で宣言されている) にアクセスできません。
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(553) : 'CObject::CObject' の宣言を確認してください。
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(524) : 'CObject' の宣言を確認してください。
コンパイラでのこの診断により関数 'CStringArray::CStringArray(const CStringArray &)' が生成されました。

どうもコンストラクタがあやしいようです。 このクラスにCStringArray型のメンバ変数があり、初期化でひっかかるようなのですが。。。
やりたいことは、CStringArray型の変数を作成中のLinkDlgに渡すといったことです。
以下がソースになります。 宜しくお願いします。

(CLinkDlg.h内)
public:
CLinkDlg(CWnd* pParent = NULL); // 標準コンストラクタ
 virtual ~CLinkDlg();
 CLinkDlg(CWnd* pParent, CStringArray& nameList , CStringArray& idList);
 CStringArray m_idList;
 CStringArray m_nameList;

(CLinkDlg.cpp内)
CLinkDlg::CLinkDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLinkDlg::IDD, pParent)
{}
CLinkDlg::CLinkDlg(CWnd* pParent, CStringArray& idList, CStringArray& nameList)
: CDialog(CLinkDlg::IDD, pParent)
,m_nameList(nameList),m_idList(idList)
{}

277 名前:デフォルトの名無しさん :2006/04/23(日) 16:03:24
>>276
CStringArrayにはコピーコンストラクタが無いので、デフォルトのコピーコンストラクタが生成される。
その過程でCStringArrayの基本クラスCObjectのコピーコンストラクタを呼び出す事になるが
privateなのでアクセスできない。
よってエラーとなる。

278 名前:デフォルトの名無しさん :2006/04/24(月) 01:31:30
>>277
ありがとうございました!
解決できました。

279 名前:デフォルトの名無しさん :2006/04/24(月) 02:32:24
全く見当違いな質問だったらすいません。
VC6.0でwindows.hをインクルードして使えるようになる関数って、
プラットフォームSDKの関数なんですか?

280 名前:デフォルトの名無しさん :2006/04/24(月) 14:34:01
はじめまして、.net 2003で開発している者です。
MSNメッセンジャーやout look,skypeのように、デスクトップの右下のタスクトレイの上部に
アラートポップアップみたいなウィンドウを出したいのですが、どのように行っているのでしょうか。
MSNメッセンジャーで"○○がサインインしました。"と通知がでるウィンドウです。

調べてみましたが、調べるためのキーワードすら分からなかったので、
宜しくお願いします。

281 名前:デフォルトの名無しさん :2006/04/24(月) 14:43:21
バルーンとかツールチップのことか?

282 名前:280 :2006/04/24(月) 15:21:03
>>281
レス、どうもっす。
ツールチップでウィンドウ型のGUIが実現できるのですか??
MSNメッセの場合、×ボタンやオプションボタンがバルーン内に配置されているのですが。

283 名前:281 :2006/04/24(月) 15:26:28
キーワードをあげただけ、詳細は知らない。
昔はツールチップを自作してたやつもいたような気がする。

284 名前:280 :2006/04/24(月) 15:30:41
ありがとうございます。
ツールチップ、もう少し調べてみます。

285 名前:デフォルトの名無しさん :2006/04/24(月) 20:02:59
フォームでボタンを一個作り、そこを押すとwavを再生するようにしたいのですが・・・

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
          sndPlaySound("J:\asfd\Win.wav",SND_ASYNC);
}

上記の場合だと
Form1.h(159) : warning C4129: '' :
Form1.h(159) : warning C4129: 'W' : エスケープ シーケンスとして正しく認識されませんでした。
Form1.h(159) : error C2065: 'SND_ASYNC' : 定義されていない識別子です。
Form1.h(159) : error C3861: 'sndPlaySound': 識別子が見つかりませんでした
こんな感じで怒られてしまいます。

環境はVisualStudio 2005で
Winmm.libはリンカに追加済みです。
ちなみにMMsystem.hをインクルードするとかなりの数のエラーが発生してしまいました。

よろしくお願いします。

286 名前:デフォルトの名無しさん :2006/04/24(月) 20:05:05
これはこれはご丁寧に、こちらこそよろしくお願いします。

287 名前:デフォルトの名無しさん :2006/04/24(月) 21:48:31
>>285
\ → \\

288 名前:285 :2006/04/24(月) 22:00:09
>>287
ありがとうございました。エラーは減りましたが下記エラーが表示されたままです。

Form1.h(159) : error C2065: 'SND_ASYNC' : 定義されていない識別子です。
Form1.h(159) : error C3861: 'sndPlaySound': 識別子が見つかりませんでした

どうみてもインクルードの問題ですよね…
でもmmsystem.hをインクルードすると88個エラー出ちゃって うーん



289 名前:デフォルトの名無しさん :2006/04/24(月) 23:01:19
#include した場合に発生する問題を解決する方法は考えんのか。

290 名前:285 :2006/04/24(月) 23:42:35
SoundPlayer
を別に使ってみたところ、インクルードも何もなしで使えました

2005はよくわかりませんが、一応巧く動いてくれたので終わりということで
ありがとうございました。

291 名前:デフォルトの名無しさん :2006/04/25(火) 02:42:33
VC++6.0でbzip2のlibを静的リンク?とかいう
DLLを呼び出さなくて良いのにビルドしたいのです。
どうやればいいのでしょうか?

292 名前:デフォルトの名無しさん :2006/04/25(火) 04:17:26
そのbzip2とかいうものの .lib と .h を探して、それらをプロジェクトに追加してみたら。

293 名前:デフォルトの名無しさん :2006/04/25(火) 08:49:24
失礼、ちゃんと理解してませんでした。
スタティックリンクライブラリのLIBを生成する為には
どうしたらいいかを教えて頂きたいのです。

294 名前:デフォルトの名無しさん :2006/04/25(火) 08:53:34
普通のライブラリの作り方と同じ
DLLの方が特殊なやりかた

295 名前:デフォルトの名無しさん :2006/04/25(火) 09:46:54
そのやり方が…どこか参考になるサイトとかあれば良いのですが…。

296 名前:デフォルトの名無しさん :2006/04/25(火) 09:49:32
bzip2ならWin用スタティックLIBもどこかに転がってた希ガス。
少なくともCygwin用はあったが……

297 名前:デフォルトの名無しさん :2006/04/26(水) 03:05:50
散々探したのですが見つかりませんでした。
スタティックでない方ならあったのですが…。

298 名前:デフォルトの名無しさん :2006/04/26(水) 06:08:54
オープンソースだからソースからビルド
でもスタティックリンクするとソース公開しないとだめだろ
そういうことで普通はDLLにするんだな

299 名前:デフォルトの名無しさん :2006/04/26(水) 08:19:39
>>298
BSDスタイルだから公開する必要ないでしょ。

DLLの場合免れるのはLGPLで、
GPLだったらDLLにしても避けられないし。

300 名前:デフォルトの名無しさん :2006/04/26(水) 08:55:04
>>293
コマンドプロンプトでbzip2のフォルダで
"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
nmake -f makefile.msc
インストール先変えてるならパス変えてね。

てかさぁ、ビルドの仕方READMEに書いてあるんだけど???
まさか、READMEも読まずに、VC++の.dspファイル開いて、
DLLでしかビルドできませんとかほざいてるわけじゃないよね?

301 名前:デフォルトの名無しさん :2006/04/28(金) 01:24:10
エディットボックスとOK・キャンセルボタンだけのダイアログを作りました。
OKボタンはDefault ButtonをTrueにしてます。
エディットボックスにカーソルがある状態で、Enterを押すとOKボタンが反応するようにしたいです。

DialogBox()だと、思ったとおりの動作になるんですが
CreateDialog()だとEnterを押してもBEEP音が鳴るだけです。

CreateDialogでも期待通りの動作をさせることはできますか?
DialogBox()ではメインの処理が止まってしまうので困ってます。


302 名前:デフォルトの名無しさん :2006/04/28(金) 06:05:51
ID_OK

303 名前:デフォルトの名無しさん :2006/04/28(金) 11:43:39
IsDialogMessageしてないとか

304 名前:デフォルトの名無しさん :2006/04/28(金) 16:22:54
>303それでした。
お手間取らせてすいません。ありがとうございました。

305 名前:デフォルトの名無しさん :2006/04/29(土) 23:34:59
VC++6.0で、プログラム行数が多くなると(と言っても5000行超え程度)、
エディタの動作がものすごく重くなるのですが、こういうものなのでしょうか?


306 名前:デフォルトの名無しさん :2006/04/30(日) 00:59:05
1ファイルに5000行も書くなバカ。

307 名前:デフォルトの名無しさん :2006/04/30(日) 01:01:33
俺には見える…
スパゲッティコードが…

308 名前:デフォルトの名無しさん :2006/04/30(日) 06:13:58
VC++6で重いなんて初めて聞いた

309 名前:デフォルトの名無しさん :2006/04/30(日) 11:41:37
>306
500ファイルも作るなバカ。

310 名前:デフォルトの名無しさん :2006/04/30(日) 12:26:06
>>309
Firefoxを否定するなバカ。

311 名前:デフォルトの名無しさん :2006/04/30(日) 16:16:32
インラインアセンブラで質問なんですが
asm,_asm,__asmの違いって何なのでしょうか?

312 名前:デフォルトの名無しさん :2006/04/30(日) 16:19:32
_の数じゃないかな。

313 名前:デフォルトの名無しさん :2006/04/30(日) 16:35:38
最近、VC++6.0を使いはじめた初心者です。

あるファイルで使われている変数の中身を、違うファイルで使いたいのですが、
どうすれば値の引渡しができるんでしょうか?


314 名前:デフォルトの名無しさん :2006/04/30(日) 16:41:03
#include

315 名前:デフォルトの名無しさん :2006/04/30(日) 17:33:16
>>311
asmがISO C++でのキーワードだけどVC++では対応していなかった気がする。
_asmと__asmはVC++の独自拡張。どっちも同じだから好きなほうを使え。

316 名前:311 :2006/04/30(日) 19:04:05
>>315
そういうことですか。
レス有難う御座いました。

317 名前:デフォルトの名無しさん :2006/04/30(日) 19:12:03
ダイアログではなくウインドウに EDIT コントロールを WS_CHILD で生成した際に、現在のシステムに設定されているフォントサイズに応じて、EDIT コントロールの高さを設定するには、どのようなパラメタを見たらよいでしょうか。

現在は EDIT コントロールの DC から GetTextMetrics( ) を使って TEXTMETRIC 構造体の tmHeight メンバと、GetSystemMetrics( ) から取った SM_CYBORDER * 2 を使っていますが、サイズがズレているようです。


318 名前:デフォルトの名無しさん :2006/04/30(日) 20:59:59
>>317
AdjustWindowRectを使ったらどう?

319 名前:デフォルトの名無しさん :2006/04/30(日) 21:19:19
tmHeight 高さ でぐぐったらそれらしきのが見つかるけど

320 名前:317 :2006/05/01(月) 12:50:54
>>318,319
レスありがとうございます。

1) GetTextMetrics( ) から tmHeight でフォントの高さを取得
2) GetSystemMetrics( ) から SM_EDGE で EditBox 内側の幅を取得
3) AdjustWindowRect( ) あら WS_BORDER で外側の枠線幅を取得

この 1) 〜 3) の値を足すと Just になりました。
GetSystemMetrics( ) で SM_EDGE と SM_BORDER 両方を取得すれば
AdjustWindowRect( ) は不要になるかもしれません。(未確認



321 名前:デフォルトの名無しさん :2006/05/04(木) 20:56:15
初心者的質問でもないのですが、どこに投稿すべきかわからないのでここに。
IEでpdfとか開くとAcrobat ReaderプラグインがIE上で開きますよね?
ああいうプラグインってどうやって作ればいいのでしょう。
何がやりたいかというとbbs2chreaderのIE版みたいなのを作りたいのです。
2chの板やスレのURLを開こうとしたら自作の2chビューワープラグインに渡すイメージです。

322 名前:デフォルトの名無しさん :2006/05/05(金) 09:58:47
お前には無理だと思う

323 名前:デフォルトの名無しさん :2006/05/05(金) 10:35:31
同意

324 名前:デフォルトの名無しさん :2006/05/05(金) 11:43:32
ATL COM で作るんだっけ?

325 名前:デフォルトの名無しさん :2006/05/06(土) 21:07:49
>>321
BHOでInternet Explorerに潜入して、
DownloadCompleteイベントを捕まえれば開かれようとするときがわかる。
そしてIHTMLDocument2のURLプロパティでURLが得られる。
それが2chのものなら、IHTMLDocument2インターフェイスを通じて自分好みに書き換えればよい。
http://www.microsoft.com/japan/developer/library/jptech/msdnnews/top.htm

326 名前:デフォルトの名無しさん :2006/05/07(日) 17:11:39
ネットワークがらみのコードを書いているんですが、
ISO-2022 <-> Unicode な変換をする Windows API もしくはライブラリはありませんか?
#フリーで配布する予定なので、ライブラリの場合はライセンス的に問題のないものが良いです。GPL, BSD2, etc..


327 名前:326 :2006/05/07(日) 17:43:28
引き続き調べてみると
HRESULT ConvertINetMultiByteToUnicode(
LPDWORD lpdwMode,
DWORD dwSrcEncoding,
LPCSTR lpSrcStr,
LPINT lpnMultiCharCount,
LPWSTR lpDstStr,
LPINT lpnWideCharCount
);
Requirements
OS Versions: Windows CE .NET 4.0 and later.
Header: Mlang.h, Mlang.idl.
Link Library: Mlang.dll.
が使えそうなので、MLang.h を include して
DWORD dwMode = 0;
ConvertINetMultiByteToUnicode( & dwMode, 50932, jisdata, nJSize, ucdata, & nUSize);
のようにしてみましたが
error C3861: 'ConvertINetMultiByteToUnicode': 識別子が見つかりません
となるようです。
(参考にしたURL)
ttp://www2d.biglobe.ne.jp/~msyk/cgi-bin/charcode/bbs.cgi?c=gr&n=211
ttp://www.kaede-software.com/2005/01/libiconv.html
MLang.h を include する以外にコード的になにか必要なのでしょうか。
(MLang.hの存在とAPIの宣言は確認しました

328 名前:デフォルトの名無しさん :2006/05/07(日) 22:42:03
>>327
http://msdn.microsoft.com/workshop/misc/mlang/reference/functions/convertinetmultibytetounicode.asp]
IE 5.5以上が必要と書いてあるから#define _WIN32_IE 0x0550が必要であるはず。

329 名前:321 :2006/05/08(月) 01:01:28
>>325
IE7入れたら設定のところで各機能拡張が何でできてるか見られますね。
AdobeとかはActiveXですね。
なんにせよ、できなくはなさそうなので、頑張ってみます。

330 名前:デフォルトの名無しさん :2006/05/10(水) 18:42:36
ポインタとstaticがよく分からないのですけども
staticのメンバを使えなくて困ってます。
class hoge {
public:
  static char* str;
  hoge() {
    str = new char[10];
  }
  ~hoge() {
    delete[] str;
  }
};
これは通るのですけども、ヘッダとして以下のように分けると
LINK2001:外部シンボル""public static char* hoge::str"(?str@hoge@@2PARA)"は未解決です。
LINK1120:外部参照1が未解決です。
と出てしまいます。
class hoge {
public:
  static char* str;
  hoge();
  ~hoge() {
    delete[] str;
  }
};
hoge::hoge() {
  str = new char[10];
}
ビルドはVS2003です。staticでなければ行くのですけども。
何が原因でしょうか?

331 名前:デフォルトの名無しさん :2006/05/10(水) 19:12:20
str = new char[10];
これをコメントにすれば通るんじゃないか?

332 名前:デフォルトの名無しさん :2006/05/10(水) 19:14:20
ああそうか上は通るのか

333 名前:デフォルトの名無しさん :2006/05/10(水) 20:09:31
>>330
クラス内の静的変数の宣言はあくまで宣言でしかない。
普通のグローバル変数のようにどこかで定義をする必要がある。

334 名前:デフォルトの名無しさん :2006/05/10(水) 20:19:18
どっかで、hoge::strを定義しろや。
上が通るようにみえるのは、リンカがclass hogeのコードを最適化で
リンクしなかったからじゃねーの。

335 名前:デフォルトの名無しさん :2006/05/10(水) 23:06:34
そして hoge クラスのインスタンスを2つ作ってあぼーんするわけだな

336 名前:デフォルトの名無しさん :2006/05/11(木) 00:53:29
質問します
座標が与えられている(x1,y1)をa
(x2,y2)をb
ab間に線を引くとして、このabの線の長さを求める式はどのようにしたらいいでしょうか?

337 名前:デフォルトの名無しさん :2006/05/11(木) 00:55:52
スレ違い

338 名前:デフォルトの名無しさん :2006/05/11(木) 00:56:07
>>336
ここはおこちゃまの数学講座じゃないんだが。
ま、hypot()でも使っておけ。

339 名前:デフォルトの名無しさん :2006/05/11(木) 01:01:26
>>338
ありがとうございます!
これで三角形の面積のプログラムがかけれます!

340 名前:デフォルトの名無しさん :2006/05/11(木) 01:17:49
日本語も怪しいな

341 名前:330 :2006/05/11(木) 10:02:12
クラスの外で
char* hoge::str;
を定義したらできるようになりました。
ありがとうございました。



342 名前:デフォルトの名無しさん :2006/05/12(金) 19:09:25
ウィンドウのクライアント領域のみを半透明で表示したいのですが、
SetLayeredWindowAttributesを使って半透明表示すると、ウィンドウ
全体が透過されてしまいます。
タイトルバーや枠線など非クライアント領域はそのまま表示し、
クライアント領域のみ半透明にするには、どのようにしたらよいのでしょうか?

343 名前:デフォルトの名無しさん :2006/05/12(金) 19:53:56
UpdateLayeredWindow

344 名前:デフォルトの名無しさん :2006/05/13(土) 14:24:44
>>343
ありがとうございます。試してみます。

345 名前:デフォルトの名無しさん :2006/05/13(土) 22:38:41
MFCのCHTMLEditViewみたく、HTMLファイルをプレビューしながら編集する機能を
MFC使わずにSDKで作るにはどうすればいい?
検索ワードだけでも教えてけれ。

346 名前:デフォルトの名無しさん :2006/05/13(土) 22:53:04
ActiveXをSDKだけでホスティングするのは骨だと思うよ。

347 名前:デフォルトの名無しさん :2006/05/13(土) 23:18:28
そうですよね。
ATLを使って作る、の間違いです。
いずれにせよ骨が折れるのは変わらなさそうだけど。

348 名前:デフォルトの名無しさん :2006/05/14(日) 00:23:30
>>347
そこまでわかっているなら検索ワードとか必要ないと思うけど。

---------------
自分で構文解析しながら、なんちゃってプレビューって言う手もあるよ。


349 名前:デフォルトの名無しさん :2006/05/14(日) 03:28:02
質問です。

GDI+ のスレが見つからないのですが、GDI;+ に関してです。
画面上の 1pixel のみに点を打つ関数がみあたらないのですが、
ひょっとして無いのでしょうか?

宜しくお願いします。


350 名前:デフォルトの名無しさん :2006/05/14(日) 12:02:51
関数内で意図的にthrowしている部分があるのですが、
デバッグモードで動かすと、デバッグウインドウに
「xxx.exe の 0x7c81eb33 で初回の例外が発生しました : Microsoft C++ exception: bool @ 0x05b9fe53。」
というメッセージが表示されてウザいです。
これを表示させなくする方法はありますか?
IDEはVisualC++2003です。

351 名前:デフォルトの名無しさん :2006/05/14(日) 12:05:32
おまえの質問がうざい

352 名前:デフォルトの名無しさん :2006/05/14(日) 16:14:14
>>350
ありますよwwwwwwwwwwww

353 名前:デフォルトの名無しさん :2006/05/14(日) 16:35:35
どこで質問して良いか迷ったのですが、
レジストリを変更せずにデフォルトの状態で
カレントフォルダのDLLを優先して使用するようにすることは
どうにかして出来ないのでしょうか?
強引な方法でもかまわないのですが…
何かありましたら教えていただけないでしょうか?
開発環境はVisual C++ .NET 2003です。
よろしくお願いします。

354 名前:デフォルトの名無しさん :2006/05/14(日) 16:41:00
そのDLLと同名のDLLを予め削除しておく。

355 名前:デフォルトの名無しさん :2006/05/14(日) 16:44:20
カレントフォルダに置いたつもりで実はそうじゃないとか

356 名前:デフォルトの名無しさん :2006/05/14(日) 16:56:49
自分で作るプログラムならどうにでもなるはずだが

357 名前:353 :2006/05/14(日) 17:01:38
>354
削除はちょっと出来そうにないDLLで…

>355
実行ファイルと同じ所において直接実行しているので
間違い無いと思います。

>356
すいません説明不足でした。
自分で作るプログラムではなくて、
他のアプリケーションが呼び出しているDLLの関数の動作を変えたいのです。


358 名前:デフォルトの名無しさん :2006/05/14(日) 17:18:45
それができるとウイルスが作れそうだね

359 名前:デフォルトの名無しさん :2006/05/14(日) 18:11:35
>>357
参考までに言っておくと、DirectXSDKについてるD3DSpyは
対象アプリのカレントにd3dspy9.dllをd3d9.dllにリネームして配置している。

360 名前:353 :2006/05/14(日) 18:42:17
>359
ありがとうございます。
試しにDirectXを使っているアプリのディレクトリに「d3d9.dll」を
コピーしてみたところ確かに呼び出しているDLLはカレントディレクトリのものになりました。
ところが同じアプリの他のDLL、たとえば「gdi32.dll」をコピーしてみてみたところ
カレントディレクトリのものをロードしてくれませんでした。
呼び出しているDLLの確認には「Dependency Walker」を使っているのですが…
この違いは何からきているのかわかりませんでしょうか?

WindowsXPだとデフォルトで
System32フォルダ→Systemフォルダ→Windowsフォルダ→プログラム本体があるフォルダ
の順でDLLを探すとあったのでどういう優先順位なのかがよくわかりません…
http://takuki.com/dennou/120-madotsukai.htm


361 名前:デフォルトの名無しさん :2006/05/14(日) 18:59:36
マニフェストファイルちゅーのが必要なのだよチミ

362 名前:デフォルトの名無しさん :2006/05/14(日) 23:03:00
>>360
gdi32.dllなんかは常にシステムフォルダのものを使用するようレジストリに記載されている。
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs)

363 名前:353 :2006/05/14(日) 23:31:32
>361
マニフェストファイル…調べてみて「****.exe.manifest」ファイルを適当に書いてみたところ
どうやら目的のファイルをロードできるようになったようです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<file name="********.DLL" hash="DLLファイルのSHA1ハッシュ値" hashalg="SHA1"/>
</assembly>
と言うように書いたのですが、assemblyIdentityなども必ず記述しなくてはいけないのでしょうか?
いまいちnameやらpublicKeyTokenの値の書き方がよくわかりません。
もう少し調べてみることにします、ありがとうございました。

>362
KnownDLLsで検索してみたところ色々と情報が見つかりました。
なるほど、逆に言うとKnownDLLsに書いてあるDLLをコピーして別に用意するというのは危険なのでしょうか?
なかなかうまくいかないものですね…


364 名前:デフォルトの名無しさん :2006/05/19(金) 14:38:24
微妙に空気が違うがちょっと教えてくれ。
久しぶりにw2kをインスコして、VC6.0+MSDNもぶちこんだんだが、VCからMSDNを起動しようとすると、

ヘルプを表示出来ません。
必要なファイルが見つかりません。
インストールをやり直してください。

こんなことになる。何度再インスコしても同じ。普通にスタートメニューからなら、MSDNも起動するんだが。
むかーーーし昔にもなった気がするが、何とか治した気がするが、今回はどうにも治らない!
解決法知ってる人、手ぇ貸してくださいorz


365 名前:デフォルトの名無しさん :2006/05/19(金) 14:53:21
ヘルプのパスを設定すればいいんじゃないか

366 名前:デフォルトの名無しさん :2006/05/19(金) 14:58:21
どこで設定するのだろう!
いやさっきから色々やってんだけど(´・ω・`)みつからんでね

367 名前:デフォルトの名無しさん :2006/05/19(金) 15:09:10
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B216109
このへんじゃないかな

368 名前:デフォルトの名無しさん :2006/05/19(金) 16:34:18
>>367
なるほど、どうやらウチの場合、VC++のインスコでアレされている可能性がナニそうだね。
いい加減6.0も古いからなぁ。学生はいいなぁアカデミックエディション・・・・・・・
という訳でがんばってみます。ありがとう!

369 名前:デフォルトの名無しさん :2006/05/19(金) 17:39:30
素早く後日談
アンインスコして再インスコしても駄目(´・ω・`)駄目だこりゃ
何とかしてアカデミックパックを仕入れる事に決定!

370 名前:デフォルトの名無しさん :2006/05/19(金) 17:43:09
割れ厨は氏ね

371 名前:デフォルトの名無しさん :2006/05/19(金) 17:45:20
ちゃうがな。学生親戚頼り厨やがな(´・ω・)

372 名前:デフォルトの名無しさん :2006/05/19(金) 17:50:27
君にはライセンスが無いんだから、いくら金払ったとしてもワレと同じだろw

373 名前:デフォルトの名無しさん :2006/05/19(金) 17:52:07
ぇーやっぱだめー?
取り敢えずしかるべき物を熟読して、何とか合法な道を探そう(w

374 名前:デフォルトの名無しさん :2006/05/19(金) 17:53:24
>>373
どうあがいても無理だろww
そういや学生の時にアカデミックライセンスでVS買った場合って
卒業した後はどうなるんだ?

375 名前:デフォルトの名無しさん :2006/05/19(金) 17:53:53
素直にexpressからのアップグレートでVS2005買っとけ

376 名前:デフォルトの名無しさん :2006/05/19(金) 17:54:40
>>374
そのまま使える

377 名前:デフォルトの名無しさん :2006/05/19(金) 17:58:45
くう・・・・あの頃に戻りたいぜ!
ええっと、19800円?
出せる金額では有るがなんか悔しいwwwwwwww

378 名前:デフォルトの名無しさん :2006/05/19(金) 18:44:36
>>376
そうなのか、thx
もっとも卒業まで最短でも後3年あるし、それまでにはC++0xのが出るだろうから
どうせ買うことになるんだろうが・・・

379 名前:364 :2006/05/19(金) 19:24:24
たびたび済まぬ。
ttp://support.microsoft.com/?scid=kb;ja;250334&spid=3042&sid=1237
即ち、 regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VS98\VSHELP.DLL"
これでいけたヽ(`Д´)ノ というわけで後進のために検索ワード入れておくかw
visual studio vc 6.0 ヘルプシステム 言語の選択 日本語 空 f1 msdn まあなんかこれくらいで。

・・・・・・・・・・・という訳で当座は凌げるんだが、やっぱ2005欲しいよ(*´・ω・)(・ω・`*)ネー

380 名前:デフォルトの名無しさん :2006/05/19(金) 21:35:04
DirectX9.0の最新SDKは、 .NET 以降の環境でないとインスコ出来ない、
と言う認識でいいのでしょうか。8.1は問題が無かったのですが。

381 名前:デフォルトの名無しさん :2006/05/20(土) 01:46:52
>>379
俺は普段からVC6使うときにMSDNは別に起動するが、IDEから起動しなくてはならない理由って何?

382 名前:デフォルトの名無しさん :2006/05/20(土) 05:53:49
これ知らないで人生無駄にしてるやつがいたとは

383 名前:デフォルトの名無しさん :2006/05/20(土) 09:55:26
>>382
しらねーなw


384 名前:デフォルトの名無しさん :2006/05/20(土) 10:16:26
IEでは左上の’戻る’ボタンを押せば戻れるのに、5ボタンマウスを使う理由って何?
ソフトウェアキーボードが有ればマウスで文字が打てるのに、わざわざメカニカルキーボードを使う理由って何?
バイナリエディタが有ればexeなんて書けるのに、わざわざCコンパイラを使う理由って何?

こりゃ極端な例だが、まあ、微妙にだが、手間が、違う、のだろう。

385 名前:デフォルトの名無しさん :2006/05/20(土) 10:59:47
>>384
キーワードを見に行ってくれちゃうお茶目なF1キーのことか?


386 名前:デフォルトの名無しさん :2006/05/20(土) 19:39:43
何より一番の手間はやっぱり、これまでのスタイルをかなり変えないといけない、って点なんじゃないですか。
キーボードのAとBが入れ替わってしまったら、とか考えると、ぞっとしますね。
人には人の価値観が有りますから、そっとしておいてあげましょう。

387 名前:デフォルトの名無しさん :2006/05/23(火) 01:51:28
あほな質問ですみません。
サービスパック6をインストールしたのですが、
Visual C++のバージョン情報が変わっていません。
msdev.exeのバージョンは6.0.9782.2なのですが、
これって本当にアップデートされてるんでしょうか?

Visual Studio Service Pack がインストール済みか確認する方法
ttp://support.microsoft.com/default.aspx?scid=kb;ja;194295

を見たのですが、サービスパックにもリンク先にも
readme.txtなんてありませんでしたorz

388 名前:デフォルトの名無しさん :2006/05/23(火) 03:04:59
VB を起動して見れ

389 名前:デフォルトの名無しさん :2006/05/24(水) 02:01:09
>>388
ありがとうございます。
VBはちゃんとSP6と表示されてました。

390 名前:デフォルトの名無しさん :2006/05/24(水) 19:41:19
すみませんが質問です。
VB++で開発をやることになったのですが、
試験ツールを調べるように言われました。
有料無料一切関係なく、調べ上げろと言われたのですが、
DevPartnerというソフトしか見つかりませんでした。
他に普及しているソフトなどはありますか?
よろしくお願いします。


391 名前:デフォルトの名無しさん :2006/05/24(水) 19:48:02
進化したなVB…

392 名前:390 :2006/05/25(木) 01:32:03
すみません。>>390です
VB++って・・・
VC++の間違いです・・・orz

393 名前:デフォルトの名無しさん :2006/05/25(木) 01:36:11
>>390
BoundsChecker

394 名前:デフォルトの名無しさん :2006/05/25(木) 16:15:14
VB(6)のActiveX DLLをVC(6)で使用して不具合が発生しました。
なぜなのか誰かご教授下さい。WinXP
以下が詳細です。
---------VB側---------
Public Type Test
a As Double
b As String
a As Double
End Type
Public Function TestApi( ByRef Buf As Test )
Buf.a = 1: Buf.b = "TEST": Buf.c = 2
End Function
---VC側----
#import でVB DLLのタイプライブラリ情報読み込み、
Com関連初期化してインターフェース取得後以下のように上記関数呼び出し
Test tTest;
memset( &tTest, 0, sizeof(tTest) );
pTest->TestApi( &tTest );
以上で、tTest内容のa, bはVBで設定した内容となっているが、
cが不定のめちゃくちゃな値になっている。
なぜcが2にならないのでしょうか??

395 名前:デフォルトの名無しさん :2006/05/25(木) 16:39:19
VB知らんけど間違ってるように見える
たぶん間違いだろう

396 名前:394 :2006/05/25(木) 16:44:26
・・・・・・・・訂正です^^;;
Public Type Test
a As Double
b As String
c As Double
End Type


397 名前:デフォルトの名無しさん :2006/05/25(木) 19:58:58
cが無茶な値、というのはVBで確認したの?

398 名前:394 :2006/05/26(金) 09:18:29
>>397
VBの関数終了直前ではcには2が入っていて、
VCに戻ってきてすぐ構造体の中を見たらcがめちゃくちゃな値に
なっていました^^;
ActiveX DLLとCとの間の変換?かなにかが悪さをしているのでしょうか?

399 名前:デフォルトの名無しさん :2006/05/26(金) 19:33:23
winsockでネットワークソフトを作成するときに、サーバー側のソフトをVisual Cで作成して
クライアント側のソフトをVisual Basicで作成するという事は可能ですか?
具体的には、Visual C側のソフトでlisten関数で待ち続け、Visual Basic側のソフトで
connect関数で接続することは可能ですか?どなたか教えてください。m(_ _)m


400 名前:デフォルトの名無しさん :2006/05/26(金) 19:38:18
VCで確認したの?VBでつくられたActvieXオブジェクトを構造体と見立てて?
その構造体はどこから出てきた?

401 名前:デフォルトの名無しさん :2006/05/26(金) 19:38:47
>399
VC側でacceptで待ち続けないと接続はできない。

402 名前:デフォルトの名無しさん :2006/05/26(金) 19:53:24
>>401

お返事ありがとうございます。listenで待てばいいと思っていたのですが、
acceptで待ち続けるが正解だったんですね。ということは、言語が違って
いてもサーバーソフト(Visual C) と クライアントソフト(Visual Basic)の接続
は可能だと言うことなんですね。ありがとうございました。m(_ _)m


403 名前:デフォルトの名無しさん :2006/05/26(金) 19:57:10
インターネットの仕組み

404 名前:390 :2006/05/27(土) 05:59:40
>>393
ありがとうございます。
BoundsCheckerもDevPartnerシリーズ(?)のですよね。
やはりそれしかないんですかね・・・


405 名前:390 :2006/05/27(土) 06:00:14
>>393
ありがとうございます。
BoundsCheckerもDevPartnerシリーズ(?)のですよね。
やはりそれしかないんですかね・・・


406 名前:デフォルトの名無しさん :2006/05/31(水) 01:33:25
VCを使って、ソースファイルを追加しデバッグをしようとしたのですが、
「シンボル情報がありません。」
と出て、デバッグができませんでした。
これを対処するにはどうしたらいいんでしょうか?

ビルドは成功して、エラーはなかったみたいなんですけど・・・

407 名前:デフォルトの名無しさん :2006/05/31(水) 01:37:54
>>406
http://ishizuka.net/ei/

408 名前:デフォルトの名無しさん :2006/05/31(水) 19:02:56
デバッグビルドであるかを確認。
それでもダメなら /ZI あたりを調べれ

409 名前:デフォルトの名無しさん :2006/05/31(水) 21:46:56
質問なのですが、子ウインドウ生成ってどうやるんですか?

410 名前:デフォルトの名無しさん :2006/05/31(水) 23:06:48
>>409
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/usingwindows.asp

411 名前:デフォルトの名無しさん :2006/06/01(木) 20:26:37
質問です、最近学校でプログラムを始めたばかりの者ですが、
学校ではVisualStdio.Net2003でプログラミングしたものを
家の2005で開くと、ビルドエラーがおきて実行できないです。

変換画面が現れて、正常に変換が終了しました。とメッセージも出るんですが。
何回やってもビルドエラーが出ます、2003では間違いなく動くんですが

例えばただの
#include <stdio.h>
main()
printf("Hello");
↑これだけの物もビルドエラーが出てしまいます。
一体なぜなのでしょう

412 名前:デフォルトの名無しさん :2006/06/01(木) 20:32:17
初心者未満はお帰りください。

413 名前:デフォルトの名無しさん :2006/06/01(木) 21:11:21

学校の授業でC言語のプログラミングがあって
家でも練習したいんですが、コンパイラとか実行させるソフトとかって
どこで何を手に入れればいいんでしょうか?
学校はLinuxですが、家ではWindowsです。

教えてください。

414 名前:デフォルトの名無しさん :2006/06/01(木) 21:18:13
>>413
コンパイラにVisual C++を使いたいというわけではなさそうだな。
Cygwinなら、Windows上でUnix風の(ということはLinuxにも近い)環境が再現できる。

学校でやるのと忠実に操作感を再現したいわけではなければ、Visual C++も悪くない。

すれ違いだから、こんなスレで聞くよりよそで聞いた方がずっといいと思うぞ。

415 名前:デフォルトの名無しさん :2006/06/01(木) 21:18:13
学校の先生か友達に聞けばいい

416 名前:デフォルトの名無しさん :2006/06/02(金) 00:18:00
>>414
そうですか
操作とかは別にいいです。
プログラムを作ってコンパイルして走らせてそのとおりの結果が出る・・・というのができればいいんです。
Visual C++とか調べてみます。

>>415
そこまで詳しいやつがいない
「自分はどうでもいい」的な人ばっかりなんで

417 名前:デフォルトの名無しさん :2006/06/02(金) 03:00:50
CComBSTRについて教えてください。

UNICODE環境で
CComBSTR strA( "あいうえお" );

で生成した文字列から前から"うえ"の部分文字列をコピーしたい場合

CComBSTR strB( 2 , strA + 2 );
と書いてよいのでしょうか?

printfで標準出力した結果を見ると問題ないようです
しかし、CComBSTRクラスに対して+UNICODE2文字バイトずらすという行為は
本来NGだと思うのですが・・・

個人的には下のどちらかを利用したいと考えています。
CComBSTR strB( 2 , strA.m_str + 2 );
CComBSTR strB( 2 , (BSTR)strA + 2);

すみませんが詳しい人教えてください。


418 名前:デフォルトの名無しさん :2006/06/02(金) 18:23:42
>>417
CComBSTR strB(2 , strA + 2);
これで平気。

CComBSTRはBSTRへの暗黙の変換があり、
BSTRは単なるOLECHARへのポインタとして扱えるから、
CComBSTR(int, LPCOLESTR);のコンストラクタが呼ばれ、新たなBSTRが作られる。

あと、BSTRをリテラルから構築するつもりなら、L"あいうえお"で初めからワイド文字にしておくほうがよい。

419 名前:デフォルトの名無しさん :2006/06/02(金) 22:48:20
XP、VC2005で作業をしています。
2003でコーディングしたソースを実行すると、
ファイルをオープンする箇所で、
文字化けをしてパスが正しく取得できていません。
ちなみに、英語のみでのパスだとファイルをオープンします。
すみませんが、詳しい人適切な方法をよろしくお願いします。


420 名前:デフォルトの名無しさん :2006/06/02(金) 23:06:34
構成プロパティ
全般
文字セット
マルチバイト文字セットを使用する

421 名前:デフォルトの名無しさん :2006/06/02(金) 23:29:58
>>422
プロパティの設定は確認して、マルチバイト文字をセットするに
なっていました。

CString path;
ifstream is(path);
if(!is)
return;

でリターンされてしまいます。

422 名前:デフォルトの名無しさん :2006/06/03(土) 00:03:18
初めまして。
基礎的なことですが、Visual C++6.0(MFC)でわからないことがあったので質問させていただきます。

ダイアログボックスの中に簡単な線を描画したいと思っています。
一般的なウィンドウ上であれば、OnDraw関数において例えば
  Cpoint Line[2];
CPen lPen;

Line.x[0] = 0;
Line.y[0] = 0;
Line.x[1] = 100;
Line.y[1] = 0;

lPen.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
oDC->SelectObject(&lPen);

pDC->PolyLine(Line, 2);
とすれば、長さ100太さ3の直線が引けます。

しかし、ダイアログボックス上において線を引く際に、線は引けるのですが、
lPen.CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); 、pDC->SelectObject(&lPen);
のような機能を持った関数(?)が見つからないために、太さ1のペンでしか
描画できずに困っています。(というのも、CDCクラスの使い方がわからない?)
ダイアログボックス上に自由自在に破線を引いたり、太さを変えた線を引きた
いと考えています。

どなたか詳しい方がいらっしゃったら、ご教授ください。

423 名前:デフォルトの名無しさん :2006/06/03(土) 00:31:24
Windowsの描画の仕組み(デバイスコンテキスト)を理解しよう。

424 名前:デフォルトの名無しさん :2006/06/03(土) 00:53:31
>>422
OnPaintでやってみたが普通に太さ3になったがな?
下のコードはデフォで出来てるCAboutに書いてみたコード

void CAboutDlg::OnPaint()
{
CPaintDC dc(this); // 描画用のデバイス コンテキスト

CPoint Line[2];
CPen lPen;

Line[0].x = 10;
Line[0].y = 90;
Line[1].x = 120;
Line[1].y = 90;

lPen.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
dc.SelectObject(&lPen);

dc.Polyline(Line, 2);
}

> 線は引けるのですが
どうやって引いたの?

425 名前:デフォルトの名無しさん :2006/06/03(土) 01:20:32
f (x) = cos (x) - x2 = 0 の根のうち、0 < x < 1 を満たすものを2分法で求める 
初期値 a, b が入力でき、 6桁推定された解と関数 f (x) を呼びだした回数を出力する方法を教えてください。 


426 名前:デフォルトの名無しさん :2006/06/03(土) 01:22:34
スレ違い

427 名前:デフォルトの名無しさん :2006/06/03(土) 23:39:29
>>425
http://pc8.2ch.net/test/read.cgi/tech/1068359871/611-612

428 名前:デフォルトの名無しさん :2006/06/04(日) 17:34:57
↓ここ(ZIPです。解凍したらBMPが出てきます。)
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1981.zip
のスクリーンショットみたいな簡単なプログラムをVC++.NETのMFCアプリケーションで作りたいのですが、
クリックして点を打つコントロールで、どのコントロールをどう使ったらよいのか分からんのです。

あと、
・コントロール上の座標を得る方法
・座標に点を描く
もよく分からんのです。

だれか手取り足取り教えてくれませんか。
よろしこお願いしマソ。


429 名前:デフォルトの名無しさん :2006/06/04(日) 18:40:06
>>428
.NETFRAMEWORKとMFCを混ぜて使いたいのか?
ttp://msdn2.microsoft.com/ja-JP/library/0xb61xs7.aspx
を読んでみるといい。

手取り足取りが必要な段階でやりたがるのは無駄だと解るだろう。
MFCだけで逝くか、.NETFRAMEWORKで逝くか決めろ


430 名前:デフォルトの名無しさん :2006/06/04(日) 19:21:27
Visual Studio 2003でMFC使ってダイアログ作ってます

ダイアログ内のコントロールの初期化は
OnInitDialog、OnCreate のいずれで行うものなのでしょうか?

ヘルプには下記にように書いてありましたが、使い分けが、いまいちわかりませんでした

OnInitDialog
このメッセージは、Create 関数、CreateIndirect 関数、
または DoModal 関数が呼び出されている間に、ダイアログ ボックスの
表示直前にダイアログ ボックスに対して送られます。

OnCreate
ウィンドウが作成された後で、それが可視状態になる前に、
新しい CWnd オブジェクトはこの呼び出しを受け取ります。
OnCreate は、Create または CreateEx メンバ関数から戻る前に呼び出されます。

431 名前:デフォルトの名無しさん :2006/06/04(日) 19:36:21
ダイアログベースならOnInitDialogを使うのが普通
ダイアログ以外はOnInitDialogは使えない。

432 名前:デフォルトの名無しさん :2006/06/04(日) 19:43:01
>>428
とりあえずVCのチュートリアルのScribbleでもやっとけ
http://msdn2.microsoft.com/ja-JP/library/92y4h944.aspx

433 名前:デフォルトの名無しさん :2006/06/05(月) 01:28:42
>>430
ダイアログ内のコントロールはOnInitDialogでやる。


434 名前:デフォルトの名無しさん :2006/06/11(日) 11:23:27
>>406

http://msdn2.microsoft.com/ja-jp/library/ms235629(d=printer).aspx

上記のURLが役に立つのではないでしょうか?
見当違いならばごめんなさいm(_ _)m。

435 名前:デフォルトの名無しさん :2006/06/11(日) 12:08:25
sz−−−−−−−−−−−−−−−

Cドライブ検索しても
user32.libが蜜からねぇぇl−−−−−
どこいったんだー!


436 名前:デフォルトの名無しさん :2006/06/11(日) 12:15:48
PDKにあったぜぇぇl!!


437 名前:デフォルトの名無しさん :2006/06/11(日) 12:27:34
マルチバイトオンリー野郎にUNICODE/マルチバイト兼用コードの書き方を教えて下さい。
_stprintf()を使おうとすると、「warning C4996: '_swprintf' が古い形式として宣言されました。」と怒られます。
要はsprintf()を使いたいのですが、正しくはどうすりゃいいのでしょうか。
VC8EEでtchar.hはインクルードしてあり、プロジェクトの文字セットは取り敢えずUNICODE(デフォルト)にしてあります。

http://www.246.ne.jp/~y-ookubo/program/tips/unicode.html
ここを参考にしたのですが…他に良いとこあったら教えて下さい。

438 名前:デフォルトの名無しさん :2006/06/11(日) 12:40:38
その警告は、_stprintf_sを使え、という意味。

439 名前:デフォルトの名無しさん :2006/06/11(日) 12:46:16
>>438
直りました、有難うございます。

この辺を解説したリンクってないすかね。
tchar.hを嫁ってのはカンベン

440 名前:デフォルトの名無しさん :2006/06/11(日) 13:15:02
>>437
その警告は無視しろ

441 名前:デフォルトの名無しさん :2006/06/11(日) 17:12:27
visual studio 2003 で本にある演習の階乗を計算するプログラムを作ろうとしていて
for next文を使うということは分かったんですが、そのあとが全くと言っていいほど分かりません。
どなたかご教授お願いします。

442 名前:デフォルトの名無しさん :2006/06/11(日) 17:24:08
宿題スレへ

443 名前:デフォルトの名無しさん :2006/06/11(日) 17:32:28
for nextって何?
nの階乗
int f=1;
for(int i=1; i<=n; i++) f *= i ;


444 名前:441 :2006/06/11(日) 19:28:10
スレ汚し申し訳ありませんでした
宿題スレ行ってきます

445 名前:デフォルトの名無しさん :2006/06/11(日) 23:11:16
Visual C++ 2005でプログラムをコンパイルしたとき、LIBC.libが無いって怒られるんだけど...
VC++2005のインストールフォルダを全部検索したけどLIBC.libが入ってない。
もとから入ってないの?

446 名前:デフォルトの名無しさん :2006/06/11(日) 23:30:31
>>445
無い。
シングルスレッド用のランタイムは無くなった。

447 名前:デフォルトの名無しさん :2006/06/12(月) 15:16:32
VC++ 2005 Express Edition をインストールして、C++ の勉強中です。
新しいプロジェクトで、Windows フォームアプリケーションを選択すると、
Form1 という名前で生成されてしまいます。

この Form1 っていう名前を変えたい場合は、どうすればいいのでしょうか?
Form1 のプロパティ->デザインに、(Name) っていうのが無いので、どう
すればいいのかわかりません。表示される文字列は、表示->Text で変
更できたのですが・・・・。


448 名前:デフォルトの名無しさん :2006/06/14(水) 12:28:30
VC++6なんですが
TRUEとtrueはどう違うんでしょうか?
ヘルプ見てみたんですがTRUEに関しては
JavaのTRUEの説明しかなかったです

449 名前:デフォルトの名無しさん :2006/06/14(水) 13:41:01
trueはC/C++言語のキーワード
TRUEはWindowsSDKで#defineされているもの

450 名前:448 :2006/06/14(水) 13:52:42
>>449ありがとうございます

#define TRUE 1;
だったのですね

451 名前:デフォルトの名無しさん :2006/06/14(水) 16:43:57
>>449
Cでは(たとえC99でも)trueはキーワードではない。

452 名前:デフォルトの名無しさん :2006/06/15(木) 06:43:39
VC++.NET2003でMFC使っています。

チェックボックスの見た目をボタンにし、
ONならONの画像
OFFならOFFの画像をボタンに表示したいのですがうまくいきません。

具体的に以下をやってみました。
@チェックボックスのプロパティにあるPush LikeとBitmapをTrueにする
ASetCheck関数で値をセット(TRUEorFALSE)
BSetBitmapで画像をセット

SetCheckが無視されているようなのですが
何か良い方法をご教示願えませんでしょうか?

453 名前:デフォルトの名無しさん :2006/06/15(木) 09:32:42
@チェックボックスのプロパティにあるPush LikeとBitmapをTrueにする
ASetCheck関数で値をセット(TRUEorFALSE)

ここまでやってみたら問題なく動く

454 名前:デフォルトの名無しさん :2006/06/15(木) 11:12:35
まさか、画像を一種類しか用意していないって落ちか?

455 名前:452 :2006/06/16(金) 20:33:11
自己解決しました。

AでTRUEorFALSEをセットせずに
GetCheck()で判定するだけでよかったみたいです。

AでTRUEorFALSEをセットするとGetCheck()は常に0となってしまいます。


456 名前:デフォルトの名無しさん :2006/06/24(土) 19:31:38
VC++.NETをはじめたばかりの者ですが、charやint等のように
CString a;
と宣言しても
----------error----------
'a' : 定義されていない識別子です。
'CString' : 定義されていない識別子です。
';' が、識別子 'a' の前に必要です。

とエラーが発生します。
他にSYSTEMTIMEなどもすべて同じようなエラーになるのですが、何か足らないものがあるのでしょうか?

457 名前:デフォルトの名無しさん :2006/06/24(土) 20:16:18
>>456
適切なヘッダをincludeしたのか?

458 名前:デフォルトの名無しさん :2006/06/24(土) 22:01:38
D&Dしたフォルダのパスをファイルへ書き込み、
2回目以降実行したときにそのファイルからパスを読み込みたいと考えています。
しかし、以下のコードでは「"C:」までしかファイルに記録されません。
自分で調べた限りではfgetsを使えばスペースや予約文字も関係ないとは思うのですが。
どうかご教授お願いします。

void get_pass(char savefile[],char pass[])
{
FILE *file;
if((file = fopen(savefile,"r")) == NULL)
{
fgets (pass, sizeof (pass), stdin);
file = fopen (savefile, "w");
printf ("%s" ,pass);
fprintf (file,"%s" ,pass);
fclose (file);
}
else
{
fgets (pass ,sizeof(pass) ,file);
fclose (file);
}
}

void main()
{
char monopass[256]="",filename[]="logpass.txt";
get_pass(filename,monopass);
}

459 名前:デフォルトの名無しさん :2006/06/24(土) 22:09:55
そりゃそうだろうよ。

460 名前:デフォルトの名無しさん :2006/06/24(土) 22:58:42
>>458
その場合、sizeof(pass)はsizeof(char*)と等価である。

461 名前:デフォルトの名無しさん :2006/06/25(日) 00:05:56
>>460
ありがとうございます。サイズも外部から渡すようにしたら上手くいきました。

パスのスペル間違っていた。恥ずかしいorz

462 名前:デフォルトの名無しさん :2006/06/25(日) 10:40:29
VC++.NETで開発している初心者です。
フォームを作成してForm1.hというファイルができあがり、そのファイル中にコードを記述しているのですが、
ネットや、この掲示板、参考書を見るかぎり、やってること(書いてる場所)が全く違う気がして疑問に思っているのですが、
VC++.NETで開発する際、実際にコードを打つファイルはForm1.hではなく、別の.cppファイルを作成して
それをForm1.h側から参照するようにするのが普通なのでしょうか?

463 名前:デフォルトの名無しさん :2006/06/25(日) 10:55:11
とりあえず本でも買って読め

464 名前:デフォルトの名無しさん :2006/06/25(日) 16:24:12
VC++ Express Editionで、本格的なWindowsプログラミングって
できるのでしょうか?
やはりダイアログやメニューの作成なんかでは、エディタがないと
厳しいですか?

465 名前:デフォルトの名無しさん :2006/06/25(日) 17:18:11
最初はやりたいことが出来なくて、もどかしいと思うけど
テンプレで紹介されてるサイトとか見た方が良いよ。
そのうち何の処理を書いてるのか分かってきて
自分でいろいろ弄ったりできるようになるから。

466 名前:デフォルトの名無しさん :2006/06/29(木) 00:44:18
リンカの設定が悪いのか、外部DLLを読み込むことができないのですが
VC++.netで設定を変更するにはどこをいじるのでしょうか

467 名前:デフォルトの名無しさん :2006/06/29(木) 19:02:05
Visual C++ 2005 Express Editionで
ASIOドライバ対応ソフトを作りたいです。
どうすればいいですか?

468 名前:デフォルトの名無しさん :2006/06/29(木) 19:03:46
作れば良い

469 名前:デフォルトの名無しさん :2006/06/29(木) 19:14:30
ttp://www.geocities.jp/ai_parappa/knowledge/PortAudio.htm
これ?

470 名前:デフォルトの名無しさん :2006/07/02(日) 01:08:19
http://www.interq.or.jp/black/minami-m/
ここのdirectXのサンプルプログラムをvisual c++ 2005でビルドしてみたのですがコンパイルまではできたのですが、リンクの段階で

dx_audio.obj : error LNK2019: 未解決の外部シンボル __imp__CoCreateInstance@20 が関数 "int __cdecl AdoInit(void)" (?AdoInit@@YAHXZ) で参照されました。
dx_audio.obj : error LNK2019: 未解決の外部シンボル __imp__CoInitialize@4 が関数 "int __cdecl AdoInit(void)" (?AdoInit@@YAHXZ) で参照されました。
dx_audio.obj : error LNK2019: 未解決の外部シンボル __imp__CoUninitialize@0 が関数 "void __cdecl AdoRelease(void)" (?AdoRelease@@YAXXZ) で参照されました。
win_main.obj : error LNK2019: 未解決の外部シンボル __imp__ShowCursor@4 が関数 _WinMain@16 で参照されました。
win_main.obj : error LNK2019: 未解決の外部シンボル __imp__FindWindowA@8 が関数 _WinMain@16 で参照されました。

というようなエラーが大量にでてきました。解決方法わかりますでしょうか。
スレ違いでしたらごめんなさい。

471 名前:デフォルトの名無しさん :2006/07/02(日) 03:44:51
OLE32.DLL でもリンクしてみるとか

472 名前:デフォルトの名無しさん :2006/07/02(日) 09:13:17
マルチんこ

473 名前:デフォルトの名無しさん :2006/07/03(月) 12:00:56
Microsoft Visual C++ 2005
SDKでMDIアプリケーションを作っているんですが、
ウィンドウサイズの変更時の画面のちらつきをなくすために
CS_VREDRAW | CSHREDRAWをけずってみたのですが、
ドキュメントウィンドウを最大化しているとちらついてしまいます。
解決策はありますでしょうか。

474 名前:デフォルトの名無しさん :2006/07/03(月) 12:13:26
Windowsの描画の仕組みを理解して、ちらつかないよう工夫する。

475 名前:473 :2006/07/03(月) 12:55:23
ですよね

476 名前:デフォルトの名無しさん :2006/07/03(月) 23:18:00
{
   CDC myDC;
   CFont myFont, *oldFont;

   myFont.DeleteObject();   ・・・@
   myDC.DeleteDC();     ・・・A
}
の@、Aって必要なんですか?
CDCやCFontのデストラクタでDelete〜を内部で呼び出したりしてないんですかね・・・
物の本には、お約束の様に@Aが書かれていて、まあ、書いてるんですがね
myFont.DeleteObject();
myFont.CreateFont();
みたいな使い方したいときに、DeleteObjectとかあるのかな・・・と勝手に解釈してたんですが、
実際どうなんでしょう?


477 名前:デフォルトの名無しさん :2006/07/03(月) 23:24:47
今まで学校でVisual Studio6.0を使っていたのですが、6.0で作っていたプログラムを引き続き2005で使うことは出来るのでしょうか?

478 名前:デフォルトの名無しさん :2006/07/03(月) 23:29:45
>>477
マルチかよ

479 名前:デフォルトの名無しさん :2006/07/03(月) 23:42:28
>>476
ソース見ればいいじゃん

480 名前:デフォルトの名無しさん :2006/07/05(水) 18:49:12
VC+6で一定時間で指定動作を繰り返す常駐プログラムを作っています。
動作の種類が増えてもタイマーを増やしたくないので、何とか自分で
累積経過時間を監視して都度必要な動作を起動したいのですが、
システムフックを使っても自分に関係のあるメッセージが飛んでこないと
何も出来ないので困っています。
タイマーを使わずに実現する良い方法は無いでしょうか?

481 名前:デフォルトの名無しさん :2006/07/05(水) 19:33:15
>>480
仮に個別の動作は1秒単位で指定できればいいとする。
1秒のタイマーを設定し1秒に一回、個別の動作予定時刻かどうか
判定するようにすればタイマーは一個あれば充分と言うことになる。
頭は生きているうちに使おう。

482 名前:デフォルトの名無しさん :2006/07/05(水) 20:18:09
>>481
ありがとうございます。
実はそれも考えてはみました。
しかし当初は1秒単位〜100ミリ秒単位でいいのですが、
将来的には複数の動作を10ミリ秒単位で制御したいので
タイマー無しでOSのメインループから毎回呼び出して
貰うような方法がないかと探しております。

483 名前:デフォルトの名無しさん :2006/07/05(水) 20:27:39
予定時刻でソートして、最も近い時刻までSleepやWaitFor〜
処理が終わったら次の時刻まで〜。
ってやるとか。

484 名前:デフォルトの名無しさん :2006/07/05(水) 20:50:50
学校のが6.0で家にあるのが.net 2003なんですが、学校でやった続きを家でやることは出来ますか?
これから卒研ではじめる予定です。

485 名前:デフォルトの名無しさん :2006/07/05(水) 21:08:44
WaitableTimerをつくってWaitForするのはどうか

486 名前:デフォルトの名無しさん :2006/07/05(水) 21:36:10
>>484
指導教官に聞けよ。

487 名前:デフォルトの名無しさん :2006/07/05(水) 21:37:53
>>483
sleepだとCPU握ったままになるんじゃないかと心配なのですが
そのへんどうなのでしょうか?
MSDNでは「モニターの所有権を失いません」という表現になっていて
どうもよく判りません。

と思っていたら、>>485さんのWaitableTimerで検索してみたら精度が
100ns単位という情報がありました。これなら十分使えそうです。
という事は、普通にタイマー使ってもそれほど負担にはならないと
いう事でしょうか。
>>481さんの方法で問題ないのかも。
いろいろ試してみます。ありがとうございました。



488 名前:デフォルトの名無しさん :2006/07/05(水) 21:40:42
>>484
VC6のプロジェクトを.net2003にするのは多少違いはあるけど大体問題なく動きます。
(一部の標準コントロールでプロパティやメソッドが違ったりしますが)
逆は動かない場合もあります。(.Net Frameworkの機能を使ったりするとダメ)
試すだけなら簡単なので一度やってみると良いですよ。
(*.dswから起動すれば自動でソリューションにしてくれる)

489 名前:デフォルトの名無しさん :2006/07/05(水) 21:48:11
>>487
ttp://msdn.microsoft.com/library/en-us/dllproc/base/about_processes_and_threads.asp
この辺読んどけ。

490 名前:Timerの質問 :2006/07/06(木) 19:06:22
VS2005でVC++を使っています.

一定時間ごとに画面(グラフを書いています)を書き直すプログラムを
作成中です.

あるダイアログのOnCreateでTimerをセットしました. 
if( ( id = SetTimer(1, 100, NULL)) != 0 ) {
// timer起動できたとのコメント表示 -> 表示できることを確認済み
}

ところがOnTimer()が呼び出されません.
OnTimer()の冒頭に,
CString ss = "hoge";
this->SetWindowTextA(ss);
と書いても,なにも表示されませんので,呼ばれていないのは確かだと思います.

何が考えられるでしょうか?
Timerをセットした以降,do-loopなど,windowsからのメッセージを
読まないような処理は入れていません





491 名前:デフォルトの名無しさん :2006/07/06(木) 19:48:32
OnTimerイベントハンドラは、クラスビューから「Windowsメッセージハンドラの追加」で追加した?
それくらいしか思いつかないな。

492 名前:デフォルトの名無しさん :2006/07/06(木) 19:55:02
>>489
ありがとうございます。
(・・・実はWin98も視野に入れてました)
でも各スレッドに数10ms単位で実行権を渡してるということは
10ms単位での制御は無理なんですね。
やっぱりWindowsは制御には向いてないか。

493 名前:デフォルトの名無しさん :2006/07/07(金) 00:40:53
>>492
制御っていうか、リアルタイムOSじゃないんだから、そういうときは別のOSを使うべし。
PocketPCなんかは、実行権をがっちり握れるからリアルタイムOSに近いことが出来るはずだよ。
Windowsっていったって、ファミリーはピンキリなんだから、簡単に向いていないとか言うべからず。


494 名前:デフォルトの名無しさん :2006/07/07(金) 01:29:22
ノーマルのCをVisial C++でコンパイルしたいのですがやり方がわかりません。
コマンドプロンプトから起動する簡単な物でいいのですが
Visial C++のコンパイラはC++専用ですか?

なぜかヘルプがまともに起動しないのでググったのですが分かりません。
どこを参照すれば良いでしょうか?

495 名前:デフォルトの名無しさん :2006/07/07(金) 02:59:18
VC++.Net2003でMFCアプリを作っています。
vectorを使っているところでコンパイルエラーとなってしまいました。
問題を単純化するためにConsoleアプリで試したところ再現しましたので、皆様に問題の解決法を教授賜りたくお願いいたします。
●ソース
#include "stdafx.h"
#include <vector>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
  vector<char> i;   //OK
  vector<char> j(10); //OK

  return 0;
}

class hoge
{
private:
  vector<char> ii;   //OK
  vector<char> jj(10); //←この行がエラーとなります。
};

●表示されるエラーメッセージ
k:\... ...l\Console.cpp(20) : error C2059: 構文エラー : '定数'

何か根本的なところで間違っている予感もするのですが、お指摘お願いいたします。

496 名前:デフォルトの名無しさん :2006/07/07(金) 03:24:02
hoge():jj(10){}

497 名前:デフォルトの名無しさん :2006/07/07(金) 03:32:10
>>496 早速のレスありがとうございます。
hoge():jj(10){} とのアドバイスですが、このアドバイスは私にとってはレベルが高いようです。お時間を割いて頂いて大変申し訳ないのですが、もう少し分かりやすくご教授お願いいたします。

498 名前:≠496 :2006/07/07(金) 04:35:05
>>495
class内の変数を初期化する構文はないので、問題の行は変数の宣言ではなく関数の宣言と見なすことになる。
そう解釈した場合、パラメータリストに定数は置けないのでエラーとなってしまう。
#従って、>496はjjをコンストラクタで初期化せよという指摘。

499 名前:490 :2006/07/07(金) 07:15:55
>491 めっせーじハンドらの追加でやっています。
なんでなんだろう。。。

500 名前:デフォルトの名無しさん :2006/07/07(金) 07:47:26
そのウインドウをSpyしたら、WM_TIMER来てる?


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