★初心者にVisual C++を教えるスレ★ Part26
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/04/12(木) 23:25:17Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
http://myu.daa.jp/osiete/
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5。
0002デフォルトの名無しさん
2007/04/12(木) 23:28:11Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/
Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/
Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/
Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/
Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/
Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/
Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/
Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/
Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/
Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/
Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
0003デフォルトの名無しさん
2007/04/12(木) 23:29:27■MFC相談室 mfc17d.dll■
http://pc10.2ch.net/test/read.cgi/tech/1164073111/l50
Win32API質問箱 Build48
http://pc10.2ch.net/test/read.cgi/tech/1166172047/l50
鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/l50
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
http://pc10.2ch.net/test/read.cgi/tech/1159613789/l50
C++相談室 part55
http://pc10.2ch.net/test/read.cgi/tech/1164951094/l50
C/C++の宿題を片付けます 80代目
http://pc10.2ch.net/test/read.cgi/tech/1166969820/l50
【初心者歓迎】C/C++室 Ver.33【環境依存OK】
http://pc10.2ch.net/test/read.cgi/tech/1164376287/l50
【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
http://msdn.microsoft.com/library/ja/
http://msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち)
Platform SDK Update ※変更された
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
http://www.google.co.jp/
0004デフォルトの名無しさん
2007/04/12(木) 23:30:00part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html
part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html
part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html
part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html
0005デフォルトの名無しさん
2007/04/12(木) 23:31:17>>前スレ998-1000
ありがとうございました。
0006デフォルトの名無しさん
2007/04/13(金) 00:03:010007前987
2007/04/13(金) 01:54:08変数の初期化はしてあると思うのですが
もう一度確かめてみることにします
CEventと変数では同期をとるのになにか違いがあるのですか?
大分前に同じと言われたような
0008デフォルトの名無しさん
2007/04/13(金) 08:41:59変数だと
たとえばaが0以外になると次の処理に進む。
while(true) {
if( a != 0 ) break;
Sleep(100);
}
最適化されて
if( a == 0 ) {
while(true) {
Sleep(100);
}
}
になってしまうことないようにvolatile使うんじゃないの。
でも俺は最適化とvolatileが上手く機能するか調べたことない。
同期イベントなら関数コールして調べるので前期のような最適化はかからない。
また、上記だと1秒間に10回aを調べる。
aの値が変化しても反応が最大で100ミリ秒遅れる。
かといってSleepを減らすとこの空回りするループにCPU処理を使ってしまい無駄。
0009デフォルトの名無しさん
2007/04/13(金) 08:47:34以下のようにすれば最適化はされないはず。
これでも駄目なら別の原因?
//宣言のみ
bool check();
void thread()
{
while(true) {
if( check() ) break;
Sleep(100);
}
......
}
//threadの後または別のファイルに
//checkがあれば最適化不可能だろう
bool check()
{
return a != 0;
}
同期イベントならループにしたりSleepつけなくていい。
0010デフォルトの名無しさん
2007/04/13(金) 09:58:53> CEventと変数では同期をとるのになにか違いがあるのですか?
・同時に複数のスレッドから変数を変更する可能性
・リードする側がチェック直前/直後で変数が書き換わる可能性(それで動作が異なってしまう場合)
等、気をつける必要があると思。
0011デフォルトの名無しさん
2007/04/13(金) 12:07:46UNIXのプログラムにWindowsのガワをつけたプログラムの作成をして配布しようと思っている
のですが、配布の段階でつまずいてしまいました。
プログラムはWindowsフォームアプリケーションでCLIに依存しています。
OSはWindows Vista x64です。
インストーラの作成を行いたいのですが、その方法が分かりません。
私が検索してたどりついたのは以下のところまででした。
お力をお借りできないでしょうか。
1.MSDNで
ttp://msdn2.microsoft.com/ja-jp/library/ms235317(VS.80).aspx
にあるように「その他のプロジェクトの種類」を行おうと思ったのですが、見当たりませんでした。
「Visual Studioにインストールされたテンプレート」と「マイテンプレート」だけでした。
2.ヘルプを参照するとプロジェクトのプロパティで「ビルド」を選択すると必須コンポーネントが
選択できるということでしたが、そのような項目はみあたりませんでした。
(Visual C#には「発行」にありましたが、VisualC++ではこれも見つかりませんでした)
3.Windows Installerをインストールしようと思ったが、「このコマンドを実行するのに十分な
記憶領域がありません。」というエラーでインストールできなかった。
経験が全くないため見当違いな部分が多く、検索も下手で要領を得ませんが、解決法をご存知の
方がいらっしゃったらお力を貸していただけないでしょうか。
0012デフォルトの名無しさん
2007/04/13(金) 12:20:26一旦削除してもう一回インストールし直したら、
「プライマリ プラットフォームがありません。
ビルドシステムは使えません。セットアップがインストールしたアドオン プラットフォーム(.pkg)のロードに失敗した可能性があります。」
といわれ、エラーで落ちる。
何回インストールし直してもだめ。
教えてエロい人><
0013デフォルトの名無しさん
2007/04/13(金) 12:49:00言語はJAVAからの応用がききますが、クラスや関数はまだ覚えられていないため、
#includeやusingを設定するのに苦闘しています。
※例外処理でfinallyが無いのが納得できない……
0014デフォルトの名無しさん
2007/04/13(金) 16:35:17たぶんそれはExpress Editionにない機能と思う
0015デフォルトの名無しさん
2007/04/13(金) 18:08:20お返事ありがとうございます。
今日ずっと調べた所、VisualC++ではインストーラーは作成できないようですね。
VisualC#であればClickOnceを使ってインストーラーの作成ができたので、つらいですが
VisualC#でプログラムを書き直そうと思います。
予算があればStandard Editionを買いたい所ですが・・・
0016デフォルトの名無しさん
2007/04/13(金) 22:02:570017デフォルトの名無しさん
2007/04/13(金) 22:19:35OK
0018デフォルトの名無しさん
2007/04/13(金) 22:28:100019デフォルトの名無しさん
2007/04/13(金) 22:33:530020デフォルトの名無しさん
2007/04/13(金) 22:34:47これをWindowsVistaで実行しようとすると、
「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした」
というエラーが出て起動できません。
Vistaで動かすにはどうしたらいいでしょうか?
0021デフォルトの名無しさん
2007/04/15(日) 00:08:40「Windowsゲームプログラミング」という本のプログラムを実行してみたところ、
アクセス違反と表示されてしまいました。
デバッガでステップ実行してみるとWM_DESTROYのreturn 0;からDispatchMessageを出るまでの間に
表示されるのですが、どこが悪いのか分かりません。
どうしたらアクセス違反を無くせるでしょうか。
以下、出力抜粋とコードです。
test_window2.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a2c7fc を読み込み中にアクセス違反が発生しました。
test_window2.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a2c7fc を読み込み中にアクセス違反が発生しました。
プログラム '[3220] test_window2.exe: ネイティブ' はコード 0 (0x0) で終了しました。
#include <windows.h>
#define APP_NAME TEXT("Sample_MainWindow")
#define DRAW_STRING TEXT("Kitty on your lap")
LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) {
WNDCLASS wc;
MSG msg;
HWND hWnd;
HDC hdc;
002221
2007/04/15(日) 00:10:29wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1;
wc.lpszMenuName = NULL;
wc.lpszClassName = APP_NAME;
if (!RegisterClass(&wc)) return 0;
hWnd = CreateWindow(APP_NAME, TEXT("Window Title"),WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL);
if (hWnd == NULL) return 0;
/* デバイスコンテキストのハンドルを取得 */
hdc = GetDC(hWnd);
/* デバイスに文字列を描画 */
TextOut(hdc, 10, 10, DRAW_STRING, lstrlen(DRAW_STRING));
/* デバイスコンテキストのハンドルを解放 */
ReleaseDC(hWnd, hdc);
while(GetMessage(&msg, NULL, 0, 0) > 0) {
DispatchMessage(&msg);
}
return msg.wParam;
}
よろしくお願いします。
0023デフォルトの名無しさん
2007/04/15(日) 00:30:22実行してみたが、ウチの環境では問題なし。
002421
2007/04/15(日) 02:38:05問題なしですか、どうしよう…
そうするとコードではなくてうちの環境が悪い可能性がありそうですね。
………
ということで環境を疑う前提で再度ググりまくってみたところ、おかげさまで解決策が見つかりました!
ImeWatcherというソフトを起動していたのですが、そちらを終了させるとアクセス違反が発生しなくなりました。
その結論に至った流れとしては、こちらのページ ttp://forums.belution.com/ja/vc/000/335/02s.shtml
を参考に出力に知らないソフトが混じっていないか見てみたところ、
なぜか起動中のソフトのdllがいくつか混じっていたため試しに一つ一つ終了させて確認していたら
それを終了させておけばアクセス違反が発生しないということが判明したという次第です。
これが相性とかいうやつなのか、単にImeWatcherのバグなのか分かりませんが、
原因(と一応の対策)がわかってすっきりしました。ありがとうございました。
下記はアクセス違反発生時の出力の抜粋です。
'test_window2.exe': 'C:\src\test_window2\debug\test_window2.exe' を読み込みました。シンボルが読み込まれました。
'test_window2.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'test_window2.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
…
ここ→'test_window2.exe': 'C:\Program Files\Takubon\ImeWatcher\ImeWatch.hook' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。
…
'test_window2.exe': 'C:\WINDOWS\system32\oleaut32.dll' を読み込みました。シンボルが読み込まれていません。
test_window2.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a2c7fc を読み込み中にアクセス違反が発生しました。
test_window2.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a2c7fc を読み込み中にアクセス違反が発生しました。
プログラム '[2644] test_window2.exe: ネイティブ' はコード 0 (0x0) で終了しました。
0025デフォルトの名無しさん
2007/04/15(日) 09:31:03#include <stdio.h>
int main(void)
{
FILE *fp1;
if( (fp1 = fopen( "d:\\tmp\\aaa.txt", "r" )) == NULL ){
}else{
}
}
だと、警告がでるんですが
でない書き方(fopenを使わない)を教えて下さい
0026デフォルトの名無しさん
2007/04/15(日) 09:55:250027デフォルトの名無しさん
2007/04/15(日) 10:01:50レスどうもです
warning C4996: 'fopen': This function or variable may be unsafe. Consider
using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNING
S. See online help for details.C:\Program Files (x86)\Microsoft Visual
Studio 8\VC\include\stdio.h(234) : 'fopen' の宣言を確認してください。
ググったらfopenは古いから使うなってことらしいです
0028デフォルトの名無しさん
2007/04/15(日) 10:09:51移植性を考慮するなら、言語規約にあるfopen()を使うのが妥当。
MSの甘言に載せられて移植性を度外視するのなら、fopen()の派生版でもAPIでも使えば宜しい。
0029デフォルトの名無しさん
2007/04/15(日) 10:27:180030デフォルトの名無しさん
2007/04/15(日) 12:08:540031デフォルトの名無しさん
2007/04/15(日) 12:21:21GetMessage(&msg, NULL, 0, 0)
で&msgで参照する時、ImeWatcheあたりがmsg使ってて、
それでプロテクトメモリ競合が発生して、AccessViolation出してるっぽいなあ
while(GetMessage(&msg, NULL, 0, 0) > 0) {
DispatchMessage(&msg);
}
return msg.wParam;
}
を
REGETMESSAGE:
if(&msg){
while(GetMessage(&msg, NULL, 0, 0) > 0) {
DispatchMessage(&msg);
}
}
else{goto REGETMESSAGE;}
return msg.wParam;
}
なんてするとどうなるんだろか?
0032デフォルトの名無しさん
2007/04/15(日) 12:31:43で、このmsgがぶつかる場合というのは
ウィンドウメッセージキュー
なのか
PostThreadMessageキュー
どっちかで、他がつかんでて、ぶつかってるんだろう。
0033デフォルトの名無しさん
2007/04/15(日) 15:33:16Web APIを利用するためのクラスなどはありませんか?
0034デフォルトの名無しさん
2007/04/15(日) 16:04:41レスサンキューです
0035デフォルトの名無しさん
2007/04/15(日) 16:23:54スレ違い。
そして無視される>28、>29
0036デフォルトの名無しさん
2007/04/15(日) 16:39:48C++のstd::ifstreamを使えばOk
>>28
ところがどっこい、あのセキュリティ強化のライブラリ関数はTR 24731として公開されており、
下手すると将来の標準Cに取り込まれる可能性すらある。現時点ではまだどうなるかわからないけどな。
ちなみにOpen Watcomのも実装しているようだ。
0037デフォルトの名無しさん
2007/04/15(日) 18:07:53M$のはSafer Cと相違点が多すぎる。
警告通りに直したら後でひどい目にあうのは確実。
0038デフォルトの名無しさん
2007/04/15(日) 18:18:01winアプリならapi使うだろうし
学習用途なら標準Cライブラリだろうし
0039デフォルトの名無しさん
2007/04/15(日) 19:32:11大文字と小文字を区別せずに文字列(char)を検索したいのですが、
速くて簡単な方法ありましたら教えて下さい。
0040デフォルトの名無しさん
2007/04/15(日) 19:44:58結局派遣やってるバカがいるんだけどw
なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw
最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w
そもそも信頼されてるなら直接契約するか正社員にするはずだが、
いつでも切れる派遣会社経由って舐められてんだよ
派遣期間が長くならないうちに早く就職しろ、と忠告したら、ウッキー!って逆ギレw
バカで頑固だから何度言っても理解できない
騙されたとはいえ結局は自分で決めて派遣やってる癖に逆ギレしちゃってまぁ
人間として本当に恥ずかしい
0041デフォルトの名無しさん
2007/04/15(日) 20:23:48stricmp()
004239
2007/04/15(日) 21:36:55レスありがとうございます。
先頭からstricmpで比較していって検索するモノが出来ました。
0043デフォルトの名無しさん
2007/04/16(月) 22:19:58ちょっとおかしなところがありまして質問します。
ファイルから読み込んでビットマップを表示させます。
画像がクライアント領域よりも大きければ、表示と同時にウィンドウ標準の
スクロールバーを各種設定をして表示させます。
スクロールバーはきちんと機能して画像がスクロールされます。
ところがウィンドウのサイズを小さくして水平スクロールバーが
クライアント領域が消えるくらいまで小さくすると水平スクロールバーが
消えたと思ったら下側のフレームに水平スクロールバーが薄く表示されています。
そこからもっとウィンドウのサイズを小さくするとタイトルバーの×ボタンに重なって
スクロールバーのサイズグリップが重なって見えます。
これでは見栄えが悪いと思い解決方法はないかと思い質問しました。
よろしくお願いします。
開発環境はVisual C++ 6.0 Pro
OSはXP Pro SP2
0044デフォルトの名無しさん
2007/04/16(月) 23:08:24下側のフレームに薄く表示されるって状態がいまいちわからんのだけど
言ってる各状態のスクリーンショットとか撮れん?
004543
2007/04/17(火) 00:06:02説明が下手で済みません。画面のスクリーンショットは自分のホームページに載せて
リンクしました。
以下がリンクです。
水平スクロールバーが下側のフレームに薄く表示されている画像。
ttp://www3.zero.ad.jp/m-takahashi19741025/20070417BMPViewSample01.png
スクロールバーのサイズグリップがタイトルバーの×ボタンに重なっている画像。
ttp://www3.zero.ad.jp/m-takahashi19741025/20070417BMPViewSample02.png
よろしくお願いします。
0046デフォルトの名無しさん
2007/04/17(火) 05:44:090047デフォルトの名無しさん
2007/04/17(火) 07:16:21CreateWindowでウィンドウスタイルにWS_HSCROLLとWS_VSCROLLを指定してスクロールバーを出して
その時に一緒に表示されるサイズグリップの挙動ってことでいいんだよな?
VCが作る雛型にスタイル追加してやってみたけど、サイズ小さくしたら普通に消えていったけどなぁ
2000とXPの違いなんだろうか・・・
0048デフォルトの名無しさん
2007/04/17(火) 07:32:24�@C++はクラス外に関数を記述できますが、main()やWinMain()以外を
クラス外に記述する意味はあるのでしょうか?
単にCからの引き継ぎ、慣習ということであれば
なるべく全ての処理をクラス内に記述したいのですが。
�AVisual C++には、JavaのLoggerクラスの様な標準ログ出力クラスは用意されていないのでしょうか。
見あたりませんでした。clogをリダイレクトする処理を実装するしかないでしょうか。
�BGUIアプリを、コンソール出力無しに作成する場合は、
WinMain()関数を使用するしかないのでしょうか?(Google検索だとそのように記述するサイトがヒット)
機種依存するコードはなるべく外出し、極小化したいのですが、
WinMain()からmain()を呼ぶように記述するしかないでしょうか。
0049デフォルトの名無しさん
2007/04/17(火) 08:16:53Cみたいな手続き型プログラミングだけでなく、
STLアルゴリズムみたいにジェネリックプログラミングでは非メンバ関数も必要に応じて使う。
何にせよ、OOPのときでも静的メンバだけのクラスなんて作るなんて馬鹿げていると俺は思うけどね。
2. Logger(というよりJava自体)を俺は知らないが、clogをリダイレクトするくらいなら、
適当なファイルをofstreamで開けば十分だと思う。ちなみにVC++のclogは、バッファリング付の標準エラー出力。
3. プロジェクトのプロパティ→リンカで
•システム→サブシステムにWINDOWS(コンソールを使わない指定)、
•詳細→エントリポイントにmainCRTStartup(main用のスタートアップルーチン)
を指定すると、mainから始まる非コンソールアプリケーションが作れるはず。
あまり一般的な手法ではないかもしれないが。
0050デフォルトの名無しさん
2007/04/17(火) 08:59:53GUIアプリって時点で十分環境依存だからWinMainを排除したところで意味はないぞ。
0051デフォルトの名無しさん
2007/04/17(火) 09:07:46(cin, )cout, cerrの他に用意されてるの?
#尤も、cerrはバッファリングしないが。
0052デフォルトの名無しさん
2007/04/17(火) 12:34:20開発環境、実行環境ともにWindowsXP(SP2)
仕様環境はVC++6.0です
レジストリの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
のStartを3から4に書き換えた(USB大容量記憶デバイス禁止)状態で
USBポートに挿入されているリムーバブルディスクの確認(空き容量と場所(E:などの割り当てられる文字))を行う方法が
存在するのなら、ご教示ください。
0053デフォルトの名無しさん
2007/04/17(火) 20:27:351:C++は不完全OOPです。
2:所詮テキストをフォーマットしてファイルに出力するだけなのでそもそも特別に必要でない
3:Windowsの標準的なGUIアプリにおいてはそもそもコンソールなんて使ってません
ていうか規定のエントリポイントを排除しないでください
0054デフォルトの名無しさん
2007/04/17(火) 20:32:30そうだよ
無論標準C++に含まれている
005548
2007/04/17(火) 20:34:52ご丁寧にありがとうございます。
1につていは、Javaの癖なんですよね。C++では非メンバ関数が当たり前ということであれば
郷に従う必要がありそうです。
2については、ログレベル(外部ファイルで、出力する下限レベルを設定)を
実現したいので、やはり個別実装しないと駄目なんでしょうね。
3については、なるべく一般的なコーディングを心がけて移植性を高めたいと思うので、
一般的でないなら止めた方が良さそうですね。
>>50
そのまま他でコンパイルできることまでは望みませんが、
このクラスは機種依存、と明確にして移植性を高めるのが目的です。
確かに、WinMainでそれを考える意味はあまりないのかもしれませんね。
イベントドリブンでなければともかく。
005648
2007/04/17(火) 20:39:34>>53
1、そう意識していくしかないのでしょうね。
もっとも、自分で制約をかければほぼ完全にOOP的に
実装できそうだと思ってはいますが(それが良いかはともかく)
2、>>55で書いてしまったのですが、ログレベルを実現したいのです。
個別実装したいと思います。
3、わかりました。WinMainを使って素直に実装しようと思います。
0057デフォルトの名無しさん
2007/04/17(火) 21:00:15どんなコンパイラでもWinMainが使えると思って平気。
その程度の移植性ならある。
0058デフォルトの名無しさん
2007/04/17(火) 22:16:190059デフォルトの名無しさん
2007/04/17(火) 22:54:30>>49
インスタンスハンドルはGetModuleHandle(0)で、
WinMainの最後の引数の代わりはSW_SHOWDEFAULTで代用すればいい。
(どうしても拘るのならGetStartupInfoと言う手もあるが)
0060デフォルトの名無しさん
2007/04/18(水) 07:37:190061デフォルトの名無しさん
2007/04/18(水) 07:58:28自分は環境依存コードにWinMain書いておいて、そこからmainを呼ぶようにしているが、
それは48氏が初めに書いているね。(それでいいと思うけど)
0062デフォルトの名無しさん
2007/04/18(水) 16:23:15以前のパソコンで上のサイトよりVisual C++ 2005 Express Editionを
インストールできたのですが新しいパソコンでインストールできません(VISTA)
CDイメージ(.iso)インストール(AIR-EDGEだと途中でダウンロードが止まる)
Webからインストール(これで試しています)
Microsoft Platform SDK を一緒に使うで
[PSDK-x86.exe]を実行すると
下のメッセージがでます
「インストールパッケージを開くことができませんでした。
アプリケーションベンダに問い合わせ、このパッケージが有効な
Windowsインストーラパッケージであることを確認してください」
3日間悩んでいます>_<;よい意見などあれば宜しくお願い致します。<(_ _)>
0063デフォルトの名無しさん
2007/04/19(木) 00:34:310064デフォルトの名無しさん
2007/04/19(木) 10:52:500065デフォルトの名無しさん
2007/04/23(月) 22:44:35サービスプログラムから複数のスレッドを起動し、中でDLL関数を明示的に
呼び出しているのですが、この関数に不具合があるらしく、アクセス違反が
発生するうえ、呼出元のスレッドごと堕ちてしまいます。
DLLを直せば済むんでしょうが、とある事情によりDLL自体に手を入れ難い状況です。
そこで質問なのですが、DLLのエクスポート関数内で発生した保護エラー等を
呼出元でトラップし、処理続行するようなことはできるものでしょうか?
よろしくお願いします。
0066デフォルトの名無しさん
2007/04/23(月) 23:01:36ほっといてあげよう
0067デフォルトの名無しさん
2007/04/23(月) 23:20:49catch(...)
で捕らえられんの?
0068デフォルトの名無しさん
2007/04/24(火) 01:08:41仰るとおりです。以後気をつけます。
DLLのソースは入手しまして、fopen()が失敗した際にNULLが返っているにも
関わらずfclose()を実行してそこでコケているので、>>65 のような書き方を
してしまいました。
>>67
レスありがとうございます。
catch(...)で試してみたのですが、拾ってくれない(そこまで到達してない)
ようです。
一度通常のコンソールアプリに組み込んでトラップできるか試してみます。
何かお気付きの点ありましたら、お願いします。
0069デフォルトの名無しさん
2007/04/24(火) 08:20:390070デフォルトの名無しさん
2007/04/24(火) 08:25:44失敗の原因が
>サービスプログラムから複数のスレッドを起動
だったりしないよな
0071デフォルトの名無しさん
2007/04/24(火) 17:02:09/EHaを付けて、SEH (__tryと__expect)の方を使えば受けられるかもしれない。
SEHで受けられるなら、_set_se_translatorでC++例外へ変換する道が開ける。
0072デフォルトの名無しさん
2007/04/26(木) 07:55:05そのDLLの内部でfopen()お呼びfclose()が行われてるってことかな。
ソースあるなら呼ばないで自分で似たようなの作り直すってのはダメなのか?
あるいは、そのDLLの問題部分を完全に突き止めて、ここをこう直せと指摘するとか。
0073デフォルトの名無しさん
2007/04/26(木) 08:28:27俺も例外をcatch(...)で取れないことが最近あった。
で、調べた。
記憶が確かなら
VC6のころはメモリアクセス違反をcatch(...)で取れた。
VC2005はコンパイルオプションを変えないと
その手のCPUがだす例外をcatch(...)で取れない。
あるいは例外ハンドラを自分で書くのかな。
コンパイラオプションは覚えとらんので書けない。
とりあえずメモリアクセス違反を握りつぶすのも問題だから
VC2005でデフォルトが例外をcatch(...)で取れないようになったのは
妥当なことなのかな。
0074デフォルトの名無しさん
2007/04/26(木) 08:33:44それが一番だよな。
エラー処理が不十分てことだからDLLを直させるべき。
でも自分の担当じゃないDLLの細部まで調べないと云々は納得いかんな。
社外の作成したDLLだからソースなしで
責任転嫁だとか本当にお前の担当部分にバグがないのかとか・・・
愚痴になってしまったのでおしまい。
0075デフォルトの名無しさん
2007/04/26(木) 09:30:00C++例外でないアクセス違反を、C++の構文で捕捉できた事が異常。
0076デフォルトの名無しさん
2007/04/26(木) 17:52:57>でも自分の担当じゃないDLLの細部まで調べないと云々は納得いかんな。
他人に直させるにしても、問題が本当に相手のソースにあるのかまではつきとめないと
やっぱり自分のミスでしたって事になった場合、人間関係に亀裂が入り易いからなぁ。
(はっきり指摘してやって逆ギレするのもいるが、そういうのは置いといて^^;)
少ない修正で済むような問題なら、教えてやった方が結果的にロスタイムも少ないしな。
0077デフォルトの名無しさん
2007/04/26(木) 18:43:190078デフォルトの名無しさん
2007/04/26(木) 19:02:47別に細部まで調べなくても
渡すデータがDLLの仕様どおりで、呼び出し部以外でコケてなけりゃどう考えてもDLLの問題だし
0079デフォルトの名無しさん
2007/04/26(木) 19:10:47「巧くいかなくて困っているんで、DLL側で助けてもらえませんか」と下手に出たほうが
協力を得やすく労力も減るかもしれない。
0080デフォルトの名無しさん
2007/04/26(木) 19:27:43仮にバグがあったとしても今まで問題にならなかったということだ。
0081デフォルトの名無しさん
2007/04/26(木) 19:47:250082デフォルトの名無しさん
2007/04/26(木) 21:40:04一度呼び出し側でfopen()して開けなきゃDLLの関数は呼ばなきゃいいんじゃね?
2度手間になるから、もちろんいじれるならDLLいじった方がいいが。
0083デフォルトの名無しさん
2007/04/27(金) 08:03:55どこに保存されてるの?
0084デフォルトの名無しさん
2007/04/27(金) 11:32:52プロジェクトの設定 プロジェクトの定義ファイル
0085デフォルトの名無しさん
2007/04/27(金) 19:15:31レジストリエディタで目的のパスで検索かけてもHitしないんだけどさ・・・
ちなみにオプションのVC++ディレクトで設定する、インクルードファイルとか実行可能ファイルとか指定するとこなんですが
0086デフォルトの名無しさん
2007/05/06(日) 14:30:15自作のクラスにメンバを追加したり、STLなどの既存のクラスを読み込んだりしたときに
かなりの頻度で、プロジェクトを閉じて開いたり、VSを再起動したりしないと
:: や . や -> などを入力した後の一覧に追加したメンバが表示されないのですが
再起動などせずに解決する方法は無いのでしょうか
0087デフォルトの名無しさん
2007/05/06(日) 20:29:250088デフォルトの名無しさん
2007/05/08(火) 20:40:19thisポインタを使わないとメンバ変数が使えなくて
thisで指定しないでその変数に行くとランタイムエラーだされるんですが
これはメモリの領域破壊のバグのひとつでしょうか?
0089デフォルトの名無しさん
2007/05/08(火) 21:05:010090デフォルトの名無しさん
2007/05/08(火) 21:09:540091デフォルトの名無しさん
2007/05/08(火) 21:14:06その辺りのコード晒してみ?
0092デフォルトの名無しさん
2007/05/09(水) 15:54:38質問があります。
ホームページビルダーを久しぶりに起動したら、
次のようなエラーメッセージが出て、起動できなくなりました。
何か解決方法はありますでしょうか?よろしくお願いします。
環境はOSがXP、HBはV9です。
-----------------------------------------------------
Microsoft Visual C++ Runtime Library
Assertion failed!
Program: ... Files\IBM Homepage Builder V9\bin\hpbpage.exe
File: .\RegistryBase.cpp
Line: 81
Expression: code == ERROR_SUCCESS
-----------------------------------------------------
0093デフォルトの名無しさん
2007/05/09(水) 16:19:410094デフォルトの名無しさん
2007/05/09(水) 18:57:27ここは「Microsoft Visual C++を使う人」のためのスレです
Microsoft Visual C++を「使って作られたソフトを使う人」はお帰りください
0095デフォルトの名無しさん
2007/05/09(水) 21:27:25環境はWinXP、VC++2005です。
> error C2678: 二項演算子 '<' : 型 'const ErrorEntry' の左オペランドを扱う演算子が見つかりません (または変換できません) (新しい動作; ヘルプを参照)。
> c:\program files\microsoft visual studio 8\vc\include\xutility 267
試したサンプルはWinsock Programmer's FAQのAsynchronous I/O Clientです
ttp://www.kt.rim.or.jp/~ksk/wskfaq-ja/examples/basics/AsyncClient/index.html
(ページの下のほうの「project package (33 KB)」からダウンロード)
ファイルはVC++5のプロジェクトが丸ごと圧縮されており必要なものは全てそろっているそうです。
VC++2005でプロジェクトを変換して開いたのですが、上記のようになりました。
エラーの場所が場所なのでコンパイラに渡すオプションあたりをいじる必要があるのでしょうか?
ご教示お願いします。
0096デフォルトの名無しさん
2007/05/09(水) 21:40:31P.J. Plaugerが自ら語るVS2005搭載C++テンプレートライブラリ
STL.NET
0097デフォルトの名無しさん
2007/05/09(水) 23:36:260098デフォルトの名無しさん
2007/05/09(水) 23:39:31まぁ読んでみれ
http://www.microsoft.com/japan/msdn/vs05/visualc/stl-netprimer.aspx
0099デフォルトの名無しさん
2007/05/10(木) 20:00:320100デフォルトの名無しさん
2007/05/10(木) 20:03:280101デフォルトの名無しさん
2007/05/10(木) 20:19:520102デフォルトの名無しさん
2007/05/11(金) 00:49:58IMEも98ぐらいの時が一番賢かった気がする。
0103デフォルトの名無しさん
2007/05/11(金) 00:55:580104デフォルトの名無しさん
2007/05/11(金) 08:08:030105デフォルトの名無しさん
2007/05/11(金) 17:06:10それだけがVBの取り柄
0106デフォルトの名無しさん
2007/05/11(金) 19:29:34そのあたりは無理に標準でついてるもの以外を使う必要が無いからなぁ
0107デフォルトの名無しさん
2007/05/11(金) 23:10:480108デフォルトの名無しさん
2007/05/14(月) 17:47:08int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPTSTR lpCmdLine,int nCmdShow){
MessageBox(NULL,lpCmdLine,"1",MB_OK);
if (lpCmdLine=="/abc"){
MessageBox(NULL,lpCmdLine,"2",MB_OK);}
return 0;}
これで実行ファイルを1.exeとしますと、1 /abcとコマンドラインから実行しても
2つ目のメッセージボックスが出ないんですが何故でしょうか?VS2005,WinXPです。
0109デフォルトの名無しさん
2007/05/14(月) 18:22:150110デフォルトの名無しさん
2007/05/14(月) 19:04:09文字列の比較方法を調べなさい
0111デフォルトの名無しさん
2007/05/14(月) 19:15:580112デフォルトの名無しさん
2007/05/14(月) 20:03:300113デフォルトの名無しさん
2007/05/18(金) 22:31:060114デフォルトの名無しさん
2007/05/19(土) 02:34:02個人的には VS2003 のインテリセンスの具合が好き
2005 はインテリセンスに限らず全体的使えないと思う
0115デフォルトの名無しさん
2007/05/19(土) 09:18:050116デフォルトの名無しさん
2007/05/19(土) 09:57:05これって意図された動作なのかただの偶然なのか?
0117デフォルトの名無しさん
2007/05/19(土) 12:09:55そのままだとビルド出来ませんでした。
プロジェクト自体は変換とか出来たんですが、StdAfx.hでインクルードされてた
Windows ヘッダー ファイル群(windows.hとか)が、No such file or directoryでエラーになります。
かといってこれを外したらコンパイル通らないし・・。
1から組むのは大変なんで、何とか使い回せないかと思うのですが、
何かいい方法ありますでしょうか。
0118デフォルトの名無しさん
2007/05/19(土) 12:12:36パス通してないとかってオチはないよな?
0119デフォルトの名無しさん
2007/05/19(土) 12:16:380120デフォルトの名無しさん
2007/05/19(土) 12:23:22おいおい初心者の俺でも分かるぜ。
0121117
2007/05/19(土) 14:01:08すみません、仰るとおり、SDKをインストールしていませんでした。。。
インストールしたらインクルードは解決しました。
今度はコンパイルエラーとwarningがいっぱい出てきましたが
ワーニングは無視してコンパイルエラーを修正。
(コンパイルエラーは for(int i=0) の i を for以降で使ってました)
次に「ファイル 'LIBC.lib' を開くことができません」が出ましたが、これはググッて解決。
(プロジェクトのプロパティで特定ライブラリの無視にLIBC.lib追加。)
現在、このエラーと格闘中です。
「zlib.lib(gzio.obj) : error LNK2019: 未解決の外部シンボル _errno が関数 _gz_open で参照されました。」
0122デフォルトの名無しさん
2007/05/19(土) 14:21:280123デフォルトの名無しさん
2007/05/19(土) 14:27:05余計な warning が鬱陶しければ #pragma warning(disable:警告番号) で消した方が。
0124デフォルトの名無しさん
2007/05/19(土) 14:27:290125デフォルトの名無しさん
2007/05/19(土) 15:24:530126117
2007/05/19(土) 15:37:14zlib.libを作り直そうと思って調べてるんですが、
VC2005でStatic Libraryは作れないんでしょうか?
2005、全部1から作るには楽なんだろうけど、ちょっと違うコトしようとしようとすると途端に・・
0127デフォルトの名無しさん
2007/05/19(土) 15:43:350128デフォルトの名無しさん
2007/05/19(土) 17:31:04自分で調べてみるぐらいしようよ
ちょっとでも調べてたらそういう質問はないと思う
0129デフォルトの名無しさん
2007/05/19(土) 20:10:17常に設計時の大きさになるようにする設定ってありますか?
0130デフォルトの名無しさん
2007/05/19(土) 20:12:03↑は無視してください。
0131デフォルトの名無しさん
2007/05/19(土) 20:28:460132デフォルトの名無しさん
2007/05/19(土) 20:34:450133デフォルトの名無しさん
2007/05/19(土) 20:55:23そもそもそんなものは無い
0134デフォルトの名無しさん
2007/05/19(土) 20:55:34VC++ .NET?って?
.NET Framework?って?
VC++6.0で知識が止まってますorz
0135デフォルトの名無しさん
2007/05/19(土) 21:10:09(「VMWare等で旧OS(XPや2k)入れて使え」と言うのは取り合えず置いておいて)
インストール試してみようと思いsetup.exe実行
→「このプログラムには基地の互換性の問題があります。」
と表示されたところでいったん止めてWeb漁ってるのですが、なかなか有効な解放が得られず。。。
0136デフォルトの名無しさん
2007/05/19(土) 21:33:02JavaのVMに相当
0137デフォルトの名無しさん
2007/05/19(土) 21:40:230138デフォルトの名無しさん
2007/05/19(土) 21:52:02MS的にはサポート外です。
0139117
2007/05/19(土) 22:08:00何とか解決しました。
ググってはいたんですが、VS2005の用語が全然分からなくて、とっかかりがなかったです。
ソリューションて何?とかいう浦島太郎状態で。
5年前に自作したツールの、数字を決め打ちしてた部分を1カ所直したいだけだったんですが
結局ビルド通すのに丸一日かかりました。
で、通ったら今度はデータが読めない・・・。
fwrite(this,sizeof(Cdata),1,fp);
ってやってクラス丸ごとバイナリで保存しておいたデータを
fread(this,sizeof(Cdata),1,fp);
で読み込んでるんですが、読み込んだデータが化けてるっぽい。
この辺の仕様も変わっちゃってるのかなぁ・・・
0140デフォルトの名無しさん
2007/05/19(土) 22:16:110141117
2007/05/19(土) 22:25:25長々チラ裏に付き合ってもらってありがとうございました。
0142デフォルトの名無しさん
2007/05/19(土) 22:45:48バイナリモード指定していない
アラインメントの指定がおかしい
データ型の大きさが変わった (ex time_t)
0143デフォルトの名無しさん
2007/05/19(土) 22:46:43普通はシリアライズ用関数とか用意するもんだ。
0144デフォルトの名無しさん
2007/05/19(土) 22:47:520145デフォルトの名無しさん
2007/05/19(土) 22:57:120146デフォルトの名無しさん
2007/05/19(土) 23:04:21vtable の事もたまには思い出してあげてくださいね。
0147デフォルトの名無しさん
2007/05/20(日) 06:42:570148デフォルトの名無しさん
2007/05/20(日) 17:31:22というような使用条件であれば、十分に活用できますか?
(主にRS232CをWin32APIから使用するのが目的です)
また、当時NT4.0との組み合わせで不具合(多分使用できない機能?)
があるとかの話を耳にしたような記憶があります。
WinXPおよびWin2000での動作はどうでしょうか?
バージョンからして、既に現状に沿った話でなくて恐縮ですが、ご教示下さい。
0149デフォルトの名無しさん
2007/05/20(日) 17:37:58つーか、Win32APIからRS232Cを使うというのが何を意味しているのか判らない。
単にシリアル伝送したいだけならmodeコマンドで条件設定してcopyコマンドでもtypeコマンドでもできるだろうに。
0150デフォルトの名無しさん
2007/05/20(日) 17:40:38VC4はわからないなぁ。
0151デフォルトの名無しさん
2007/05/20(日) 17:42:38適当なの探してきて動かしてみればいい
0152デフォルトの名無しさん
2007/05/20(日) 18:48:47stdafx.h
#include <../creptopp/sha.h>
と記述してこれをコンパイルすると、
--------------------------------------------------------------------------------
コンパイルしています...
debug.cpp
c:\test\Anonymous\stdafx.h(126) : fatal error C1083:
include ファイルを開けません。'../../creptopp/sha.h': No such file or directory
--------------------------------------------------------------------------------
ファイルの階層は下のようになっています。
test
- creptopp/
- Anonymous/stdafx.h
#include <sha.h>
#include <../creptopp/sha.h>
#include <../../creptopp/sha.h>
と試してみたのですが、うまくいきませんでした orz
どうぞよろしくお願い致します。m(__)m
0153152(追記)
2007/05/20(日) 18:53:27http://www.cryptopp.com/
cryptopp/sha.h
cryptopp/sha.cpp
展開するとみたいになっていました。これを利用したいです。
0154デフォルトの名無しさん
2007/05/20(日) 18:54:15使うならちゃんとpath通しとけよ
0155デフォルトの名無しさん
2007/05/20(日) 18:59:35相対パスの元は、stdafx.h の場所ではなく
コンパイルしている cpp の置かれた場所なんじゃね?
0156デフォルトの名無しさん
2007/05/20(日) 19:13:50ライブラリができたらヘッダとlibを適当な場所へ置いて使うだけ
0157デフォルトの名無しさん
2007/05/21(月) 21:29:580158デフォルトの名無しさん
2007/05/21(月) 21:38:42速度に関しては、個別に実測する以外は全てただの憶測。
0159デフォルトの名無しさん
2007/05/21(月) 22:33:480160デフォルトの名無しさん
2007/05/21(月) 22:40:45まぁそんなこと考えるのは時間の無駄だから、コードの見易さ・美しさを考える方がいいよ
0161デフォルトの名無しさん
2007/05/22(火) 00:00:15なんですか? その「オーバーヘット」って。
0162デフォルトの名無しさん
2007/05/22(火) 00:06:050163デフォルトの名無しさん
2007/05/22(火) 00:54:160164デフォルトの名無しさん
2007/05/22(火) 01:07:28「warning C4996: 'scanf' が古い形式として宣言されました。」
scanf()を使うと2005から上記の警告が出ることはググって分かったのですが
当方の警告文は全て英語のままで上記の一文が出てきません
↓これだけ
'This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
日本語の警告文の説明を表示させたいのですがどこを設定すればいいのでしょうか?
よろしくお願いします
0165デフォルトの名無しさん
2007/05/22(火) 07:41:21というより、MSDNライブラリインストールしろ
0166デフォルトの名無しさん
2007/05/22(火) 07:58:06C4996だけの問題じゃねぇんだよ。判ってねぇなら書くなよ。
0167デフォルトの名無しさん
2007/05/22(火) 08:11:290168デフォルトの名無しさん
2007/05/22(火) 08:13:17C4996以外もその番号でググればいい。
0169デフォルトの名無しさん
2007/05/22(火) 09:58:06元に戻す方法は人に聞くのってどういう了見なんだ?
0170デフォルトの名無しさん
2007/05/22(火) 11:00:13俺の環境じゃ英語しか出ねえよ
て解釈した
英語にアレルギーがあるかしらんがこの機会に慣れたら?
0171デフォルトの名無しさん
2007/05/22(火) 11:32:050172デフォルトの名無しさん
2007/05/22(火) 11:33:590173デフォルトの名無しさん
2007/05/22(火) 11:37:290174デフォルトの名無しさん
2007/05/22(火) 13:00:300175デフォルトの名無しさん
2007/05/22(火) 17:58:170176デフォルトの名無しさん
2007/05/22(火) 18:24:090177デフォルトの名無しさん
2007/05/22(火) 21:31:25でもたいして問題じゃねえしMSDNライブラリあれば心配ねえよ
0178デフォルトの名無しさん
2007/05/22(火) 23:27:340179デフォルトの名無しさん
2007/05/23(水) 09:56:280180デフォルトの名無しさん
2007/05/23(水) 11:14:520181デフォルトの名無しさん
2007/05/23(水) 11:24:41本人は「特に何もしてない」と言ってるんだからSP1だってあててるわけが無い
0182デフォルトの名無しさん
2007/05/23(水) 11:31:010183デフォルトの名無しさん
2007/05/23(水) 11:31:36その程度の日本語の説明なら要らんけど
あと、うちはProfessionalだな
0184デフォルトの名無しさん
2007/05/23(水) 11:38:23MicrosoftUpdateで時々入れようとしてるんだけど毎回失敗する。
0185デフォルトの名無しさん
2007/05/23(水) 14:17:33何が原因だったんだろ
0186デフォルトの名無しさん
2007/05/23(水) 14:43:170187デフォルトの名無しさん
2007/05/23(水) 17:18:310188デフォルトの名無しさん
2007/05/24(木) 10:37:27どこになんと言う名前でその処理が書かれているか教えてください
終了するときに処理を付け加えたいのでお願いします
0189デフォルトの名無しさん
2007/05/24(木) 10:54:400190デフォルトの名無しさん
2007/05/24(木) 10:58:08の順じゃないかな。それぞれのデフォルトハンドラで
MFCだと、OnSysCommand() からクローズ投げて
OnClose() が呼ばれ、そこでDestroyWindow()して OnDestroy()が呼ばれる。
もしかしたら違うかも。spy++やデバッガで確認してみて
0191デフォルトの名無しさん
2007/05/24(木) 11:00:220192デフォルトの名無しさん
2007/05/24(木) 11:16:42パスワード入力とOKボタンを押し終了させるものです
パスワードが違っているかキャンセルボタンを押した場合終了しません
という処理をしようと思っています
0193デフォルトの名無しさん
2007/05/24(木) 11:47:000194デフォルトの名無しさん
2007/05/24(木) 11:47:19ハンドラの追加でON_WM_CLOSE()を追加したんですが
対応する関数に反応ありませんでした
0195デフォルトの名無しさん
2007/05/24(木) 11:54:15何がどうなってるのかよくわからん、反応が無いとは何で判断?
0196デフォルトの名無しさん
2007/05/24(木) 11:57:31フォームビューによるダイアログです
プロパティのメッセージから追加しました
ブレークポイントをつけて通っているか判断しました
0197デフォルトの名無しさん
2007/05/24(木) 11:58:45↑簡単に言うとこういうことをMFCでやりたいのです
0198デフォルトの名無しさん
2007/05/24(木) 11:59:40こないのはおかしいね。spy++で観察してみては。
0199デフォルトの名無しさん
2007/05/24(木) 12:14:470200デフォルトの名無しさん
2007/05/24(木) 12:17:58ダイアログベースじゃない場合は、どのクラスがメッセージを処理してるかだな
0201デフォルトの名無しさん
2007/05/24(木) 12:25:40保存しますか?
みたいな確認でたような気がするけどどうだったかな?
0202デフォルトの名無しさん
2007/05/24(木) 12:27:28WM_DESTROY→WM_NCDESTROY→WM_CLOSE→WM_SYSCOMMAND
でした
0203デフォルトの名無しさん
2007/05/24(木) 12:45:28そのあと閉じていいか確認が出る
0204デフォルトの名無しさん
2007/05/24(木) 13:13:44CMainFrame::OnCloseをオーバーライドして使えばいいということですか?
そこも通らないような・・・
0205デフォルトの名無しさん
2007/05/24(木) 13:15:330206デフォルトの名無しさん
2007/05/24(木) 13:24:39最初からそういう風に動作するようになってる
0207デフォルトの名無しさん
2007/05/24(木) 13:37:57まあいろいろ試してあちこちにハンドラ置きまくってみればいろいろわかることもある。
0208デフォルトの名無しさん
2007/05/24(木) 13:40:25ありがとうございます!
0209デフォルトの名無しさん
2007/05/24(木) 16:34:45自分でつけたコントロールのほかに
TODO: コントロールをここに置く のテキストボックスと
OKとキャンセルボタンがついてごっちゃになってました
Jisakudlg dlg(this);
dlg.DoModal();
なぜなのか教えてください
0210デフォルトの名無しさん
2007/05/24(木) 16:47:48ダイアログの選択したパーツを整列するボタン押したんじゃないの?
0211デフォルトの名無しさん
2007/05/24(木) 16:52:44作り直したらいけました
0212デフォルトの名無しさん
2007/05/24(木) 22:34:23やりたいことは、下記のようにprintf系の関数に引数をそのまま渡したいのです。
void printfWithHeader(char *str, ...) {
char buf[1000] = "Header:";
strcat(buf,str);
printf(char *str, ...);
}
環境は、Visual Studio 2003です。
皆様、お願いいたします。
0213デフォルトの名無しさん
2007/05/24(木) 22:53:23そんなことをわざわざVCスレで質問する意味がわからん
0214デフォルトの名無しさん
2007/05/24(木) 22:57:12規約も護れないやつぁ帰れ
0215デフォルトの名無しさん
2007/05/24(木) 23:00:070216デフォルトの名無しさん
2007/05/25(金) 00:06:50UTF-8のソースを扱うにはどうすればいいのでしょうか。
コンパイルはできるのですが、日本語の表示ができません。
0217デフォルトの名無しさん
2007/05/25(金) 00:24:02thx.
vprintf系でできそうです。
>>213
> VCというか普通のCの質問だろ
> そんなことをわざわざVCスレで質問する意味がわからん
レスありがとうございます。
VCの拡張機能も含めて、回答を頂きたかったからです。
老婆心ながら、>>213さんは行間をうまく読めないようですので、コミュニケーション能力を鍛えた方がよろしいかと思いました。
0218デフォルトの名無しさん
2007/05/25(金) 00:27:25一般社会ではコミュニケーション能力不足と判定されます。
0219217
2007/05/25(金) 00:29:210220デフォルトの名無しさん
2007/05/25(金) 00:34:52先にShift_Jisに変換してからコンパイル、が一番楽。
.NETベースのコンパイラは、文字列=Unicodeで保持、と決め打ちできるんだけどねえ。
0221デフォルトの名無しさん
2007/05/25(金) 00:51:21.NET を通す場合だとどうなんだろう。
よく知らん。
0222デフォルトの名無しさん
2007/05/25(金) 01:03:25人が多いスレで質問した方が適切な回答が得られやすい
ここはVC限定でしかも初心者限定だから人が少ない
0223デフォルトの名無しさん
2007/05/25(金) 04:26:270224デフォルトの名無しさん
2007/05/25(金) 07:09:43VS2003にもVBとか色々あるが、ここで質問するからにはVC++2003でいいんだな?
0225デフォルトの名無しさん
2007/05/25(金) 09:14:210226デフォルトの名無しさん
2007/05/25(金) 11:24:20技術者が設計図の行間とか読んだら、ものは出来上がらない
行間読むくらいなら、設計を詳細まで確認するのが正しい
0227デフォルトの名無しさん
2007/05/25(金) 12:26:21DLL側のヘッダをincludeし、定義しているクラスをメインのexeで使いたいのですが
宣言はできるのですがビルドすると 未解決の外部シンボル と怒られます。
どうしたらよいのでしょうか。
0228デフォルトの名無しさん
2007/05/25(金) 12:54:27DLLを先にビルドしてしまえば、DLLで配布されてるライブラリなんかと同様に扱える
0229デフォルトの名無しさん
2007/05/25(金) 13:29:18実はcppUnitを使用したいと思いまして、現在のプロジェクトをそのままに
新規でテスト用のプロジェクトから該当のクラスにアクセスしたいと考えておりました。
おっしゃられるように入出力だけのテストなら、dll呼び出せばできそうです。
ありがとうございます。
0230デフォルトの名無しさん
2007/05/27(日) 07:54:300231230
2007/05/27(日) 08:29:21http://www.devexpress.com/Products/NET/IDETools/RefactorCPP/
0232デフォルトの名無しさん
2007/05/28(月) 12:20:461つのプロジェクトに複数のダイアログ画面でがあり、
各画面で同じ処理を行うメンバ変数・関数が存在します。
これをまとめるため、CDialogから派生したCCustomDialogを作成し、
各画面の基底クラスに使用することを考えました。
通常のC++クラスであれば、上記のことが可能であるとわかりますが、
CDialogクラスでも可能でしょうか?
(Windowsのイベントとかメッセージとかが、正常に処理されるのか心配しています。)
0233デフォルトの名無しさん
2007/05/28(月) 12:32:20CDialogを派生して各ダイアログクラスを作るように、CCustomDialogを派生すればいい。
CCustomDialogの作成には幾つかMFC特有のおまじないが必要だから、どっかでサンプルを探すのがいいね。
0234232
2007/05/28(月) 19:36:24レスありがとうございます。
参考にさせていただきます。
0235デフォルトの名無しさん
2007/05/29(火) 20:40:37キーボードの入力を待たないでキーボードの入力を取得するにはどうすればよいのでしょう?
(押されてなかったらNULLかなんかで抜けてくれる関数等)
0236デフォルトの名無しさん
2007/05/29(火) 20:54:060237デフォルトの名無しさん
2007/05/29(火) 22:26:24これで出来ました。どうもありがとう。
0238デフォルトの名無しさん
2007/05/30(水) 13:17:56ダイアログボックスに画像とその説明のテキストのリストを載せたいのですが、
どのコントロールを使えば最適でしょうか?
0239デフォルトの名無しさん
2007/05/30(水) 13:19:490240デフォルトの名無しさん
2007/05/30(水) 13:43:28ケースバイケース
0241デフォルトの名無しさん
2007/05/30(水) 14:26:19適当にやります。
0242デフォルトの名無しさん
2007/05/30(水) 15:29:040243デフォルトの名無しさん
2007/05/30(水) 16:01:43そのようなイベントが見つかりません。
そのようなデリゲートはないのでしょうか?
0244デフォルトの名無しさん
2007/05/30(水) 16:33:180245デフォルトの名無しさん
2007/05/30(水) 16:58:28で、キャレットを非表示にすることまでは分かったのですが、常に非表示にするにはすべてのテキストのイベントで実行させなければなりません。
もっと効率よくキャレットを非表示にする方法はないものでしょうか?
0246デフォルトの名無しさん
2007/05/30(水) 16:59:470247デフォルトの名無しさん
2007/05/30(水) 17:11:250248デフォルトの名無しさん
2007/05/30(水) 17:27:57どうせ普通はそんなこと誰もやらないし
0249デフォルトの名無しさん
2007/05/30(水) 17:29:320250デフォルトの名無しさん
2007/05/30(水) 17:31:360251デフォルトの名無しさん
2007/05/30(水) 17:34:250252デフォルトの名無しさん
2007/05/30(水) 17:51:140253デフォルトの名無しさん
2007/05/30(水) 17:57:340254デフォルトの名無しさん
2007/05/30(水) 20:20:180255デフォルトの名無しさん
2007/05/31(木) 00:22:570256デフォルトの名無しさん
2007/05/31(木) 02:19:05プログラマーとしてそんな行為が許されると思っているのですか?
025762
2007/05/31(木) 06:44:08(現状選択できない)ビルド、実行したい!コンソールアプリケーションは選択可!
>>62 VC++2005EE VISTA Microsoft Platform SDK をインストールは
自分でぐぐったり、繰り返しやったことでなんか組み込むことができたようです!^^
原因はおそらくVC++2005EEを起動したままインストール作業を
したからだと思います!(たぶん!)原因がこんなことだったとは・・・><;
Windowsゲームを作るように Windowsアプリケーションで
キャラクターを表示させたい。必要と思ったためDirectX SDKもインストールしました!^^
DirectX Sample Brawserも見れす。Microsoft .NET Framework Version 2.0もOK!
参考サイト
http://freepg.fc2web.com/cpp/topic_vce_001.html
http://www.plustarnet.com/aspil/Programming/2d00.htm
http://www5b.biglobe.ne.jp/~u-hei/vcexpress_settings/
時間ばかりかかり、どうか・・・みなさまのお力を><;
0258デフォルトの名無しさん
2007/05/31(木) 06:48:26何だ何だすごく読みづらいぞ
0259デフォルトの名無しさん
2007/05/31(木) 06:51:190260デフォルトの名無しさん
2007/05/31(木) 06:51:41再インスコ
0261257
2007/05/31(木) 07:14:02読みやすくしたつもりですが・・・長文過ぎたか ><;
>>260
一応何回かやっています。どなたぞ宜しく願い^^
もう少し待ってつつ頑張ります。 ><;
0262デフォルトの名無しさん
2007/05/31(木) 07:21:260263257
2007/05/31(木) 07:23:08すません><;
0264デフォルトの名無しさん
2007/05/31(木) 09:46:340265デフォルトの名無しさん
2007/05/31(木) 10:01:25言葉を注意されてすぐにもこんな事書くのか。
0266デフォルトの名無しさん
2007/05/31(木) 10:14:000267デフォルトの名無しさん
2007/05/31(木) 11:32:310268257
2007/05/31(木) 11:43:11>何がやりたくて
Windowsアプリケーションで Windowsのゲームを作りたい!
よってWin32アプリケーションの生成と実行をしたい!
>何をした
VC++2005EE、Microsoft Platform SDK をインストールした
DirectX SDK、Microsoft .NET Framework Version 2.0 もインストールした
主にインストール設定以下の3つを参考にした
http://freepg.fc2web.com/cpp/topic_vce_001.html
http://www.plustarnet.com/aspil/Programming/2d00.htm
http://www5b.biglobe.ne.jp/~u-hei/vcexpress_settings/
>現状どうなっているのか
http://www5b.biglobe.ne.jp/~u-hei/vcexpress_settings/
のWindows アプリケーションのビルドのアプリケーションの設定の
アプリケーション種類でWindowsアプリケーションが選択できない
(コンソールアプリケーションのみ選択できる)
なのでWin32アプリケーションの生成と実行ができない
------------------------------------------------------
他にインストールや設定が必要なのでしょうか?前向きな意見を^^
OSはVISTAです。コンソールアプリケーションは作成できます
分かりにくかったらごめんなさい <(_ _)>
0269デフォルトの名無しさん
2007/05/31(木) 11:46:04そんな簡単な所で躓いてんのかよwww
既出も既出大既出
0270デフォルトの名無しさん
2007/05/31(木) 11:49:13やっぱり、「現状どうなっているのか」は大事だね。
それで正常だよ。Win32アプリケーションを作りたかったら
もうちょっとこことか、他のサイトでも調べてごらん。
0271デフォルトの名無しさん
2007/05/31(木) 11:50:42もっと具体的に何をしたか書いてみ。
例えば、AppSettings.htmはどう修正したとか。
0272デフォルトの名無しさん
2007/05/31(木) 11:57:03コンソールアプリケーション作成時に、ウィザードの選択肢はチェックしたのかな。
0273257
2007/05/31(木) 15:55:17>>270>>271
>それで正常だよ >例えば、AppSettings.htmはどう修正したとか。
この意見は大きかったです <(_ _)> その辺を意識して再調査しました
>>272
コンソールアプリケーションも動かしてみます
意見を聞いて調べ実行した結果。種類でWindowsアプリケーションが選択できました(^_^)ノ
Googleキーワード 「Windows アプリケーション AppSettings.htm corewin_express.vsprops」
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1351057&SiteID=7
を発見!それまでは秀丸で編集して反映されてOKと思っていたのですが・・・(AppSettings.htm)
メモ帳で開く反映されていない!え〜><;・・・ならばメモ帳で編集すればOKかと思ったのですが
反映されませんでした><;なんで〜T_T;意味分かりません><;・・・サイトの通りに
管理者権限でやるとうまくいきました・・・勉強します orz
多くのレス有難うございました。又何かありましたら宜しく願います。<(_ _)>
0274デフォルトの名無しさん
2007/05/31(木) 16:01:10ExpressEditionはしばらくしたら爆発するから気を付けろ
0275デフォルトの名無しさん
2007/05/31(木) 18:23:490276デフォルトの名無しさん
2007/05/31(木) 18:39:13を、最後に読み込んだソリューションにする
0277デフォルトの名無しさん
2007/05/31(木) 18:39:180278デフォルトの名無しさん
2007/05/31(木) 18:42:250279デフォルトの名無しさん
2007/05/31(木) 18:42:560280デフォルトの名無しさん
2007/05/31(木) 18:48:410281デフォルトの名無しさん
2007/05/31(木) 18:57:350282デフォルトの名無しさん
2007/05/31(木) 18:59:08ファイルを開くダイアログで十分操作はできると思うぜ。
0283デフォルトの名無しさん
2007/05/31(木) 19:08:16⊂⌒( `Д´) エクスプローラーじゃなきゃヤダ
`ヽ_つ ⊂ノ ヤダ
ジタバタ
0284デフォルトの名無しさん
2007/05/31(木) 19:09:510285デフォルトの名無しさん
2007/05/31(木) 19:12:090286デフォルトの名無しさん
2007/05/31(木) 19:22:530287275
2007/05/31(木) 19:40:500288デフォルトの名無しさん
2007/05/31(木) 23:07:50‖ | ∨
‖現実 ∧_∧ .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ 読めませ〜ん
‖ | ∨
‖空気 ∧_∧ .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ 知りませ〜ん
‖ | ∨
‖常識 ∧_∧ .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
___ ありませ〜ん
‖ | ∨
‖未来 ∧_∧ .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
0289デフォルトの名無しさん
2007/06/02(土) 02:13:55#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
CHAR chStr[128];
wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);
return 0;
}
とやっているのですが、UNICODEでコンパイルしようとすると(勿論マルチバイトではコンパイルできます)
error C2664: 'wsprintfW' : 1 番目の引数を 'CHAR [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2664: 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
と型変換のエラーではねられます。
CHARをTCHARにしてみたり、とりあえず無闇にキャストしてみたりしたのですが、上手く行きません。
wsprintfをUNICODEでコンパイル通すにはどうしたら良いのでしょうか。
0290デフォルトの名無しさん
2007/06/02(土) 02:32:38#include <tchar.h>
int WINAPI _tWinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
LPTSTR lpCmdLine , int nCmdShow ) {
TCHAR chStr[128];
wsprintf(chStr , _T("インスタンスハンドル : %d") , hInstance);
MessageBox(NULL , chStr , _T("Kitty on your lap") , MB_OK);
return 0;
}
0292デフォルトの名無しさん
2007/06/03(日) 17:20:11#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
やら、
windef.hで
typedef int INT;
やら定義されていますが、これら大文字の型を用いる時(或いは用いることが望ましいとされている時)
はどのようなときでしょうか。
或いは過去or未来との互換性の為に存在するのでしょうか。
また、もしMSDNに参考となるドキュメントがあれば、それもお教え下さい。
0293デフォルトの名無しさん
2007/06/03(日) 17:25:36将来仕様変更あってもいい
0294デフォルトの名無しさん
2007/06/03(日) 18:40:41> 或いは過去or未来との互換性の為に存在するのでしょうか。
じゃねーか。
0295292
2007/06/04(月) 00:58:10解答ありがとうございます。
Win32App的には大文字で記述した方が将来的に互換性が維持されることが期待される、ということでしょうか。
サンプル漁ってもVOIDはたまに見かけますが、INTとかは今のところ見つけられていないので、現実にはほとんど利用されていない、のかな。
0296デフォルトの名無しさん
2007/06/04(月) 01:09:12> 大文字で記述した方が
というわけではなく。
たとえばintのビット数が現在のコンパイラと違うものがあった場合(実際あるよ)、
直接INTを使うよりもtypedef されたものを使っていた方が移植が簡単。
typedefのところ1箇所を変えればいいのだから。
てなとこじゃないかと・・・・
0297296
2007/06/04(月) 01:09:580298デフォルトの名無しさん
2007/06/04(月) 02:03:08コンパイラ側の設定(と呼んでいいのかな)としてintのビット数を将来的に変更しやすいようにしているわけですね。
どうもありがとうございました。
0299デフォルトの名無しさん
2007/06/04(月) 07:28:27visual c++ runtime library
runtime error
abnormal prpgram tarmination
っていうエラーが起こってしまいましてゲームが進まないのですが、どのように対処したらよいでしょうか?
ちなみにXPです
0300デフォルトの名無しさん
2007/06/04(月) 07:44:58┏ ━ゝヽ''人∧━∧从━〆A!゚━━┓。
╋┓“〓┃ < ゝ\',冫。’ 、 ._〃Ν ; ゛△│´' 'ゝ'┃... ●┃
┃┃_.━┛ヤ ━━━━━━,/\.\━━━━━━━━━ .━┛
∇ //\\.\ 火、ヽ,,"∧.: .┨'゚,。
.。冫▽ < // \\.\ 十 乙 ≧ ▽
。 ┃ . Σ、\. \\|, 、\'’│ て く
┠ .ム┼\\. /// ,,’.┼ ァΖ.┨ ミo'’`
。、゚`。、 i/\,\// レ' o。了 、'’ × 个o
○ ┃ `、,~´+√ ▽ ',!ヽ.◇ o┃
┗〆━┷ Z,.' /┷━''o ヾo┷+\━┛,゛;
0301デフォルトの名無しさん
2007/06/04(月) 07:55:31作ったやつに文句言う。
0302デフォルトの名無しさん
2007/06/04(月) 08:05:41OSがC++でできてるの知ってる?
そのエラーはね爆発予告なんだよ。
だから>>300の言うように今すぐPC投げ捨ててぶっ壊さないとダメなんだよ。
地球を滅ぼしたくないならね。
0303デフォルトの名無しさん
2007/06/04(月) 08:16:570304デフォルトの名無しさん
2007/06/04(月) 08:55:47そのゲームのスレかPC初心者あたりのスレで
0305デフォルトの名無しさん
2007/06/06(水) 13:02:24VisualStudio2005 VC++
文字セット UNICODE
目的 読み出したテキストと同じ内容を表示
//TCHAR szStrは外部のメモ帳で作成したテキストファイルから読み出し
//内容=>test.txt "テスト1234テスト"
int Len;
TCHAR buf[1024*64];
Len = MultiByteToWideChar(CP_ACP,0,(LPCSTR)szStr,-1,buf,0);
MultiByteToWideChar(CP_ACP,0,(LPCSTR)szStr,-1,buf,Len);
//違うのは当たり前だけど、いい方法が解らない
buf[(Len-1)/2] = '\0';
//Lenは27
//出力すると=>"テスト1234テストフフフ"
目的通りに元の文字列を表示させるにはどうしたらいいでしょうか?
0306305
2007/06/06(水) 13:42:57int buflen;
TCHAR buf[1024*64];
int len = _tcslen(szStr);
buflen = MultiByteToWideChar(CP_ACP,0,(LPCSTR)szStr,-1,buf,0);
MultiByteToWideChar(CP_ACP,0,(LPCSTR)szStr,-1,buf,buflen);
buf[buflen-len-1] = '\0';
0307デフォルトの名無しさん
2007/06/06(水) 14:20:44何がしたいのかわからん。
MultiByteToWideChar の戻り値をよく考えろ。
バッファサイズに0を指定した場合、ヌル終端も含めたバイと数が返ってこないか?
わざわざ '\0' を入れてるのは何で
0308デフォルトの名無しさん
2007/06/06(水) 14:22:110309デフォルトの名無しさん
2007/06/06(水) 15:52:43test.txtの文字コードが定まっているのなら、
szStrはTCHARではなく、CHARやWCHARあるいはその他の大きさが変化しない型にすべき
0310デフォルトの名無しさん
2007/06/06(水) 20:29:20改行文字を"\0\0"でやってみそ
ここのMultiByteはUTF16(エンディアンは忘れた)だからエスケプ文字も2バイト長だったかな
Sjis→Uni変換ならCP_ACPはNULLでもよかったような希ガス
0311310
2007/06/06(水) 20:32:130312デフォルトの名無しさん
2007/06/07(木) 02:36:53このページに書いてあるGetCharABCDWidths関数の使用方法と必要なヘッダファイルを教えてください。
ググってもぜんぜんヒットしないんです。
なんかすごく便利そうなのに。
0313デフォルトの名無しさん
2007/06/07(木) 02:50:250314デフォルトの名無しさん
2007/06/07(木) 03:04:00ヤフっても出てこないけど?
いいから教えてください。
0315デフォルトの名無しさん
2007/06/07(木) 03:11:230316デフォルトの名無しさん
2007/06/07(木) 03:25:47検索しても出てこないから聞いてるんだろうがよ。
0317デフォルトの名無しさん
2007/06/07(木) 03:27:210318デフォルトの名無しさん
2007/06/07(木) 03:28:54もったいぶらずに教えろよ。
0319デフォルトの名無しさん
2007/06/07(木) 03:28:55日本語も分からんのか(´・ω・`)
0320デフォルトの名無しさん
2007/06/07(木) 03:30:090321デフォルトの名無しさん
2007/06/07(木) 03:39:12ひでーよなんだよ・・・。くそー。スマンカッタ
0322デフォルトの名無しさん
2007/06/07(木) 08:21:000323デフォルトの名無しさん
2007/06/07(木) 14:40:140324デフォルトの名無しさん
2007/06/08(金) 23:16:35ググること自体が検索するの意味なので「ヤフれ」はおかしい。
大抵の用語集には「ググる」とはグーグルで検索することとあるがしかし、
これはグーグルが「勝手に名前を使うな」とちゃちゃを入れたことから始まる。
昔は「ググる」とは一般的に検索するという意味で使われていたのである。
そんな痛々しい策略に乗ってヤフれなど言うのは恥ずかしいことこの上ない。
0325デフォルトの名無しさん
2007/06/08(金) 23:19:550326デフォルトの名無しさん
2007/06/08(金) 23:37:13第一Googleが問題にしていたのは、英語としてのgoogleで、
少なくとも日本法人は、日本語のググるを問題視していない
http://japan.cnet.com/news/media/story/0,2000056023,20209087,00.htm
0327デフォルトの名無しさん
2007/06/10(日) 01:30:25それはググルにとっても利点だろう
0328デフォルトの名無しさん
2007/06/10(日) 07:12:560329デフォルトの名無しさん
2007/06/10(日) 11:07:060330デフォルトの名無しさん
2007/06/10(日) 13:55:370331デフォルトの名無しさん
2007/06/10(日) 19:34:130332デフォルトの名無しさん
2007/06/14(木) 01:07:27「プログラマ養成入門講座 VisualC++ 山本信雄」
という本でVisualC++を学習しているのですが、
本で使っているソフトがVisualC++6.0で、当方2005でを使っているのですが
操作方が原型を留めていないのですよ。
VisualC++6.0はもう手に入らないのでしょうか?
もしくは手に入れる方法はないのでしょうか?
0333デフォルトの名無しさん
2007/06/14(木) 01:22:196はまだインストールされてるけど、2005使うともう使う気になれないな・・・
0334デフォルトの名無しさん
2007/06/14(木) 02:11:300335デフォルトの名無しさん
2007/06/14(木) 05:55:13付録のCDがついてると思うけど
サンプルをそんまんまビルドして動かしてみればいいと思う。
0336332
2007/06/14(木) 09:44:58三冊で約8000円ですよ。
今さら買いかえるなんてあんまりです。・゚・(ノД`)・゚・。
本にこんなに注ぎ込んだのは大学以来ですよ〜。。
ちなみに。、MFCが消えるって知ったのは最近です。
>>334
いやーでもビジュアル面は大事ですよ。
操作方法が判ってるとびびらなくなりまし。
会社でC#使ってるんですが、標準C#入門読み終わって。
VS.netみたらびびりましたもん、なんじゃこれ?って。。
>>335
あんましよく理解できてないかも。。
APIなんて触ったの初めてだし。
OSとかAPIとかの本読まなきゃダメなのかな orz
0337デフォルトの名無しさん
2007/06/14(木) 10:34:34本は言語関連だけ参考にすればいい
0338デフォルトの名無しさん
2007/06/14(木) 13:01:11本買う金が惜しかったら、ネットで調べるしかないな
0339デフォルトの名無しさん
2007/06/14(木) 19:45:04MFC7.0
フォルダを探してそのフォルダの中にテキストファイルを作成
すでにテキストファイルがあればテキストを追加
もしフォルダが存在しない場合フォルダを作成してからテキスト作成
テキスト作成はC言語のやり方でやろうと思っています
フォルダの作成でいいのがあれば教えてください
0340デフォルトの名無しさん
2007/06/14(木) 21:23:06好きなのどぞ〜
複数階層を纏めて掘れるSHCreateDirectory/Exは、
残念ながらdeprecated扱いなので注意。
// C Runtime
_mkdir
system("mkdir ○○○")
// Win32
CreateDirectory/Ex // _mkdirかこれが無難か
SHPathPrepareForWrite // 一番楽?
// Automation
Scripting.FileSystemObject.CreateFolder // WSHでは標準的な方法
Shell.Application.NameSpace - Folder.NewFolder // マニア向け
// .NET
System.IO.Directory.CreateDirectory
System.IO.DirectoryInfo.Create
Microsoft.VisualBasic.FileSystem.MkDir // 昔のVBLoveな人向け
Microsoft.VisualBasic.FileIO.FileSystem.CreateDirectory
0341デフォルトの名無しさん
2007/06/14(木) 22:39:560342デフォルトの名無しさん
2007/06/15(金) 05:28:010343デフォルトの名無しさん
2007/06/15(金) 15:22:59ExecuteSQLでテーブルにInsertする際
データにダッシュ(―)が入っていた場合
実行後にテーブルを見てみると―が?に
変換されています。どうしたらよいのでしょうか?
0344デフォルトの名無しさん
2007/06/15(金) 15:28:090345デフォルトの名無しさん
2007/06/15(金) 15:35:20プロジェクトの文字セットはUNICODEにしています
文字列もwchar_t型で扱っていますがそういう意味では
ないのでしょうか?
0346デフォルトの名無しさん
2007/06/15(金) 15:53:38問題がどっちにあるのか切り分けできない?
環境(と、バージョン)がわかればもうちょっと何とかなるかもよ
0347デフォルトの名無しさん
2007/06/15(金) 16:41:22OS環境:WinXP SP2
開発環境:VS2005 MFC使用
DBはSQLServerで構築しました。
データはただ単にダイアログのエディットに
入力された文字をSQL文と連結しています
(どちらもCString型です)
0348デフォルトの名無しさん
2007/06/15(金) 17:15:14ttp://www.fiberbit.net/user/hobbit-t/html/utf8.html
ここに出てる文字を片っ端から試してみて
0349デフォルトの名無しさん
2007/06/20(水) 18:07:59ツールとかないかしらん?
0350デフォルトの名無しさん
2007/06/20(水) 18:52:40***.rcファイルをコピーして、拡張子をcsvに変え、必要なとこだけコピーペーストする。
とかではダメか?
0351デフォルトの名無しさん
2007/06/21(木) 13:59:26rcにあったのねん
サンンクス
0352デフォルトの名無しさん
2007/06/21(木) 14:01:290353デフォルトの名無しさん
2007/06/22(金) 03:11:00現在、複数のプロジェクトでリソースファイルを共有しています。
リソースファイルに複数のバージョン情報リソースを定義し、実行している
EXEによって表示するバージョン情報を変えたいと思っているのですが、
どうやったら異なるバージョン情報リソースのデータを取得するかが分かりません。
EXEファイルからリソース情報を取得する方法はよく見かけるのですが
リソースファイルから取得する方法はなぜかありませんでした。
ご教授をお願い致します。
0354デフォルトの名無しさん
2007/06/23(土) 00:16:36VC2005で作成されたプロジェクトファイルを
2003でも開けるように、変換してくれるような
ツールってありませんか?
0355デフォルトの名無しさん
2007/06/23(土) 01:28:16事実上、バージョン番号書き換えるだけでしょ。
0356デフォルトの名無しさん
2007/06/23(土) 12:04:110357デフォルトの名無しさん
2007/06/24(日) 13:42:42------ ビルド開始: プロジェクト: saiki, 構成: Debug Win32 ------
コンパイルしています...
WinMain.cpp
.\WinMain.cpp(5) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
kooh2.cpp
というエラーが出たんだが、どうすれば解決できるの?
超初心者にもわかりやすい説明希望。
0358デフォルトの名無しさん
2007/06/24(日) 14:02:06これで判らないなら、VisualStudio2005 StandardEdition Upgradeを
買ってインスコしとけ。
0359デフォルトの名無しさん
2007/06/24(日) 14:36:29CTest クラスのInit()というメンバ関数を、複数のスレッドがコールします。
しかし、Init()関数の中には一度だけしか行ってはいけない処理があります。
(実装ライブラリの初期化処理)
どうすれば、実現できるのでしょうか?
0360デフォルトの名無しさん
2007/06/24(日) 14:39:07ダウンする以外の方法はないの?
うちのパソ、ダウンにかなりの時間かかるからそれだとできないのだが。
0361デフォルトの名無しさん
2007/06/24(日) 14:41:580362デフォルトの名無しさん
2007/06/24(日) 14:42:47>ダウンする以外の方法はないの?
>VisualStudio2005 StandardEdition Upgradeを
買ってインスコしとけ。
0363デフォルトの名無しさん
2007/06/24(日) 14:45:19Stdがなんなのか知らないけど、それ以外の方法はないの?
0364デフォルトの名無しさん
2007/06/24(日) 14:46:290365デフォルトの名無しさん
2007/06/24(日) 14:47:05向いてないからプログラミングやめる
0366デフォルトの名無しさん
2007/06/24(日) 14:47:140367デフォルトの名無しさん
2007/06/24(日) 14:47:53http://www.qmedia.ca/launch/psdk.htm
0368デフォルトの名無しさん
2007/06/24(日) 14:51:040369デフォルトの名無しさん
2007/06/24(日) 16:00:22そいつは実装の問題だな。
色々やり方あるけど
とりあえず CriticalSection あたりを利用してみれ
# 当然コレだけじゃ出来んぞ
まぁそもそも、全体的な構成が悪い気もするけど。
0370デフォルトの名無しさん
2007/06/24(日) 16:18:38ありがとうございました。調べてみます。
0371デフォルトの名無しさん
2007/06/24(日) 22:48:53ADSLなら余裕だろ
0372ちんこ
2007/06/24(日) 22:58:230373デフォルトの名無しさん
2007/06/24(日) 23:26:250374デフォルトの名無しさん
2007/06/24(日) 23:32:590375デフォルトの名無しさん
2007/06/25(月) 10:08:310376デフォルトの名無しさん
2007/06/25(月) 13:50:340377デフォルトの名無しさん
2007/06/25(月) 14:58:11それは本当か?
0378デフォルトの名無しさん
2007/06/25(月) 21:44:01当方初心者、Windows XP、Visual Studio 2005使用。
簡単なウィンドウアプリを書いて無事ビルドできたんだが、
いざ実行しようとしたら
「'C:\WINDOWS\system32\ほにゃらら.dll'を読み込みました。
シンボルが読み込まれていません」というメッセージがずらーってできた。
今まで同じようなアプリは普通に実行できたのに。
俺何もしてないはずなのになぜ、ひねくれるの?おしえておじいさん。
0379デフォルトの名無しさん
2007/06/25(月) 21:45:310380デフォルトの名無しさん
2007/06/25(月) 21:45:400381デフォルトの名無しさん
2007/06/25(月) 21:55:04同じく初心者、WinXP VisualStudio2005使用。
フルスクリーンのウィンドウを表示してbmpを全画面に貼り付けようといじっててフルスクリーンのウィンドウは出るんですが、
全くいじらずデバッグ開始しているにも関わらず、bmpがキチンと画面全体に描画される場合と下に空白ができる場合があって悩んでます。
ちょっと曖昧過ぎて答えにくいかもしれませんがお願いします。
0382デフォルトの名無しさん
2007/06/25(月) 22:46:000383デフォルトの名無しさん
2007/06/25(月) 22:51:31違うの?
0384デフォルトの名無しさん
2007/06/26(火) 01:27:54もちろんWM_PAINTのタイミングで描画してるよな。
0385デフォルトの名無しさん
2007/06/26(火) 01:42:35してます・・。
0386381
2007/06/26(火) 02:42:06すみません、できているとは思うんですが自信がなくなってきたので質問・・。
それができていなかった場合>>381で書いたような不安定な不具合が起こるんでしょうか?
0387デフォルトの名無しさん
2007/06/26(火) 02:42:21ちょっと曖昧過ぎて答えにくいな。
0388デフォルトの名無しさん
2007/06/26(火) 03:14:45どこにでもあるようなものだろ?
全部上げるか問題部分だけ上げれば?
0389デフォルトの名無しさん
2007/06/26(火) 09:40:32タスクバー分?
0390378
2007/06/26(火) 13:37:30>>379
教えてくれてありがとう、おじいさん。
>>380
孫娘に「口笛はなぜ〜♪」って聞かれて「自分で調べろカス!」って、
おまいに人の心はないのか。・゚・(ノД`)・゚・。
0391デフォルトの名無しさん
2007/06/26(火) 13:59:09孫娘でも知ってるような事を分からなくて孫娘に聞くって、
おまいはどんだけ〜。・゚・(ノД`)・゚・。
0392デフォルトの名無しさん
2007/06/26(火) 15:43:020393デフォルトの名無しさん
2007/06/26(火) 17:12:50Visualstudio6.0を入れてるPCに2005Expressを入れてしまったのでアンインストしようと思うんですが
普通に2005をアンインストしても6.0の動作に問題はありませんか?
0394デフォルトの名無しさん
2007/06/26(火) 18:14:550395381
2007/06/26(火) 19:25:52空白はタスクバー分の空白だと思います。
0396381
2007/06/26(火) 21:23:35何故再描画入れないとタスクバー分空白ができるのか結局分からず仕舞いでしたがありがとうございました。
0397デフォルトの名無しさん
2007/06/27(水) 06:55:410398デフォルトの名無しさん
2007/06/27(水) 16:41:40GetClientRectあたりで取ってきてんのかな
0399sage
2007/06/27(水) 23:38:35汎用アプリケーションリソースにしています。
最近Windows2000からWindows2003にOSをアップグレードしたところ、
プロセスのオフライン時にデバッガが起動して、
オフラインに失敗する事象が頻発するようになってしまいました。
デバッガを見てもアセンブリが読めないため、難儀しております。
このような場合、考えられる問題は何がありますでしょうか。
0400デフォルトの名無しさん
2007/06/27(水) 23:41:29名前欄にsageと書くバカらしさ
0401デフォルトの名無しさん
2007/06/28(木) 00:46:160402デフォルトの名無しさん
2007/06/28(木) 02:09:28されたんですが、独学で可能ですか?いろいろ調べるとC言語が理解して
いないと無理なように思えたんですが。
0403デフォルトの名無しさん
2007/06/28(木) 04:30:21独学も可能だしC言語の知識がなくてもわかると思うけど…
でもやっといてもいいんじゃないかな?
0404デフォルトの名無しさん
2007/06/28(木) 08:09:23基本的にCからやったほうがいいと思いますが
センスがあればC++でも問題ないと・・・
しかし初心者にはC++は難しい
自分は入りやすいように
DXライブラリというサイト利用してゲームを作っています。
グーグル検索してみて〜
後は本を買ったりして基本と必要なことだけを覚えていくこと
0405デフォルトの名無しさん
2007/06/28(木) 09:00:39よし、替え玉2号の俺に任せろ!
0406デフォルトの名無しさん
2007/06/28(木) 13:14:59プログラム経験ないんだろ?
変数とは何か、配列とは何か、演算子とは何かからはじめるわけだ。
使えるようになれと命令されたってことは猶予はせいぜい1ヶ月くらいか?
もう無理と断言していいんじゃまいか。
0407デフォルトの名無しさん
2007/06/28(木) 13:39:020408デフォルトの名無しさん
2007/06/28(木) 13:39:030409デフォルトの名無しさん
2007/06/28(木) 14:06:25上司に俺を紹介すればいいと思うよ
0410デフォルトの名無しさん
2007/06/28(木) 18:43:32別にたいしたことやるわけでもないなら余裕だろ
ポインタやらビット制御やらまでくると理解が難しいだろうが
0411デフォルトの名無しさん
2007/06/28(木) 20:36:10#include "stdafx.h"
#include <stdio.h>
void main()
{
int a,b,wk;
scanf("%d,%d",&a,&b);
wk=a;
a=b;
b=wk;
printf("a=%d b=%d\n",a,b);
}
を試してみたのですがaとbを入れ替えるプログラムがうまく動きません。
写し間違いはないと思うのでが何が原因なんでしょうか
0412デフォルトの名無しさん
2007/06/28(木) 21:14:570413デフォルトの名無しさん
2007/06/28(木) 21:30:280414デフォルトの名無しさん
2007/06/28(木) 21:40:340415デフォルトの名無しさん
2007/06/30(土) 12:47:13Base64でエンコードされたファイルをBSTR型文字列で受け取ることになっているんですが、
メモリの許す限り何MBでも入りますよね?
0416デフォルトの名無しさん
2007/06/30(土) 16:34:380417デフォルトの名無しさん
2007/06/30(土) 16:40:51理論上は終了文字含まないで4GBだな。
バイナリ換算だと1GBか。
0418417
2007/06/30(土) 16:43:53バイナリ換算すると512MBだった…… orz
0419デフォルトの名無しさん
2007/06/30(土) 17:21:59#Win32ではまず連続1GBもメモリは確保できないけど。
0420417
2007/06/30(土) 21:03:504GBytes => UTF-16:2G => 1.5GBytes だろ、常識的に考えて。
ごめん、今日はボケてるみたいだ orz
0421デフォルトの名無しさん
2007/06/30(土) 21:07:370422デフォルトの名無しさん
2007/06/30(土) 22:45:44>>417-420が4バイトといっているのは、
BSTRの先頭の文字列の長さを格納する部分の大きさを根拠にしている。
Win64でもこの大きさは変わっていない。
あと、言ったところでどうにもできないとは思うけど、
BSTR自体は直接バイナリデータを扱えるようにもなっている。
0423デフォルトの名無しさん
2007/07/01(日) 00:04:06最大は2^29バイトとなるように実装されている。
BSTRは別段UNICODE
(これはM$が勝手に決めたUNICODEであって、本来はいわゆるUTF-16に準拠したもの)を
格納するためではない。その気になればEUCだって代入できる。
現に>>422も単なるバイナリデータとして扱えると言っている。
ところが、少なくともVB6のCComBSTRのメンバ関数は、2バイト文字を扱うように実装されおり、
かつ、null-terminal文字列として扱っている。
BSTRはどんな文字セットでも扱えるとM$は称しているが、実際のところ安全なプログラムを組むには
UTF-16以外は代入しない方がいいと考えていい。
そして、文字列のバイト数は2^29-2であって、文字列は2^28-1文字(最後は`\0')しか代入できない。
ちなみに、Windows95系と互換性を持たせたかったら、4095バイトを限界にした方がいい。
うろ覚えだが、確かメガバイト単位までは実装されてなかったはず。
0424デフォルトの名無しさん
2007/07/01(日) 00:08:59>null-terminal文字列
ここは突っ込むところなのだろうか。
0425423
2007/07/01(日) 00:16:16よく突っ込んでくれた!といいたいところだが、単なるミスです。
当方チューハイ4杯入ってますので。
0426デフォルトの名無しさん
2007/07/01(日) 00:26:40> zero-terminated string to copy. The sz parameter must be a Unicode string
>in 32-bit applications, and an ANSI string in 16-bit applications.
についてはどう考える?
まあ、インターフェースと内部実装でコードが違ってる場合もあろうけど。
0427デフォルトの名無しさん
2007/07/01(日) 00:52:36非ヌル終端の文字列でBSTRを初期化したければSysAllocStringLen。
バイナリデータでBSTRを初期化したければSysAllocStringByteLen。
0428デフォルトの名無しさん
2007/07/01(日) 00:56:28こっちのほうだけど。
0429デフォルトの名無しさん
2007/07/01(日) 11:06:09まとめると、データがBase64文字列の最大100MB程度で
OSがWinNT系なら、何も考えずにBSTRに格納できるということでしょうか。
ただ、格納されるBase64文字列はUTF-8かSJISのどちらか(未確認)です。
Base64文字列データを返値として提供してくれる関数の返値の型がBSTRになっているのですが、
そのまま格納してはまずいのでしょうか…。
CStringに入れれば大丈夫だったり?
※
上の関数はライブラリで提供されてるので中身の実装は分からないのですが、中で
返値をBSTRに格納してるのなら一緒じゃないかと思ったり
0430デフォルトの名無しさん
2007/07/01(日) 11:28:49それくらいだったら平気だろう。
0431デフォルトの名無しさん
2007/07/01(日) 14:12:290432デフォルトの名無しさん
2007/07/01(日) 14:20:090433デフォルトの名無しさん
2007/07/01(日) 23:41:20ツール>オプション>プロジェクト及びソリューション>VC++ディレクトリ でインクルードファイルとライブラリファイルのところに
追加してるんですがうまくいかない場合は他にどこに気をつけるべき?
0434デフォルトの名無しさん
2007/07/01(日) 23:45:490435デフォルトの名無しさん
2007/07/02(月) 00:04:06しょっちゅう使うつもりなんでできるだけ環境に入れときたいんですが……
0436デフォルトの名無しさん
2007/07/02(月) 00:22:21だからプロジェクトに追加しないとリンクされねぇっつーの。
プロジェクトなりソースでファイルをリンクするように設定しろや
環境にPATHを入れるのは自由だ
0437デフォルトの名無しさん
2007/07/02(月) 00:53:23登録しなければインストールできないのですか?
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
0438デフォルトの名無しさん
2007/07/02(月) 00:56:450439デフォルトの名無しさん
2007/07/02(月) 08:56:42なんだい、えらそうに。このタコが。
0440デフォルトの名無しさん
2007/07/02(月) 09:15:15うまくいかないんだろう
猿の方が賢いかも
0441デフォルトの名無しさん
2007/07/02(月) 10:26:55をつけときゃ、あとはディレクトリの指定だけしときゃいい
0442デフォルトの名無しさん
2007/07/02(月) 19:12:19コメントも一緒に表示できるようにならないかねぇ・・・
俺が知らないだけかもしれないけど・・・
0443デフォルトの名無しさん
2007/07/02(月) 20:26:37に何か書いてあるっぽい。C#のXMLドキュメントコメントと似たようなものか?
でも、読むの('A`)マンドクセ
0444デフォルトの名無しさん
2007/07/02(月) 23:10:07いや、どうせなら
#prazma
ディレクティブの方が多少面白かったのに。
0445デフォルトの名無しさん
2007/07/02(月) 23:45:21ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_206.htm
を参考に作ってみたのですが、
ttp://www.dsnw.ne.jp/~yasushi/donutr.jpg
のページ切り替え用タブのような、タブ同士の間にセパレータが
入った格好良いタブ表示にするにはどうしたらよいのでしょうか?
0446デフォルトの名無しさん
2007/07/03(火) 00:02:420447デフォルトの名無しさん
2007/07/03(火) 00:13:30http://www.kumei.ne.jp/c_lang/sdk3/sdk_206.htm
の先頭に
> さらにこのプログラムではタブコントロールから TCS_EX_FLATSEPARATORSスタイルを取り除いて
> タブとタブの境界線を描画しないようにしています。
と書いてあるけどこれとはまた別のこと?
0448デフォルトの名無しさん
2007/07/03(火) 00:31:40dwStyle &= ~TCS_EX_FLATSEPARATORS;
の行をコメントアウトしたらできました。
大変下らない質問でスレを汚してしまい、
申し訳ありませんでした。
ありがとうございました。
0449デフォルトの名無しさん
2007/07/03(火) 03:44:250450デフォルトの名無しさん
2007/07/03(火) 07:26:00まあまあ、主観の話なんだからケチ付けない。
0451デフォルトの名無しさん
2007/07/03(火) 15:43:220452デフォルトの名無しさん
2007/07/03(火) 16:11:09ふかわっぽい笑いを感じた2007年夏
0453デフォルトの名無しさん
2007/07/04(水) 19:41:46#include <time.h> をしてもlocaltime_r() が使えません
何故だか教えてくださいVS2002ですよろしくお願いします
0454デフォルトの名無しさん
2007/07/04(水) 19:56:29スレッド間で干渉はない。よって、localtimeつかってればいい。
0455デフォルトの名無しさん
2007/07/04(水) 20:02:19普通にコンパイルするのと同じでいいのでしょうか?
0456デフォルトの名無しさん
2007/07/04(水) 20:32:39C/C++→コード生成→ランタイムライブラリ→マルチスレッド〜を選択しろ
DLLかスタティックか、デバグ用かリリース用かで計4種類ある
Makefile手書きかcl.exeを直接実行してる場合は、
clに-MT -MD -MTd -MDdのいずれかのオプションを指定しろ
つうか、これぐらいぐぐるかヘルプ嫁
0457デフォルトの名無しさん
2007/07/04(水) 20:43:00メニューのプロジェクトのところをみているのですが存在しませんorz
0458デフォルトの名無しさん
2007/07/04(水) 20:58:57私はMFCプロジェクトでプログラムを作成しています
その場合どうすればいいのでしょうか?
0459デフォルトの名無しさん
2007/07/04(水) 21:08:320460デフォルトの名無しさん
2007/07/04(水) 21:11:14存在しないものは存在しないので普通混乱するでしょう?
0461デフォルトの名無しさん
2007/07/04(水) 21:42:350462デフォルトの名無しさん
2007/07/04(水) 22:00:540463デフォルトの名無しさん
2007/07/04(水) 22:59:50もしかしたら出ないしくみかもしれないし・・・
0464デフォルトの名無しさん
2007/07/04(水) 23:44:02Viewクラスにメッセージ定義してコールバック関数追加したんですけど
メッセージがViewに飛んできません。
//View cppに
static UINT WM_FINDREPLACE = ::RegisterWindowMessage(FINDMSGSTRING);
BEGIN_MESSAGE_MAP(C**View, CFormView)
ON_REGISTERED_MESSAGE(WM_FINDREPLACE, OnFindReplace)
END_MESSAGE_MAP()
LONG C**View::::OnFindReplace(WPARAM wParam, LPARAM lParam)
{
return 1L
}
//Vew hに
afx_msg LONG OnFindReplace(WPARAM wParam, LPARAM lParam);
ダイアログ自体の表示もうできてるんですが、なんでメッセージこないんですか?
0465デフォルトの名無しさん
2007/07/05(木) 07:46:340466デフォルトの名無しさん
2007/07/05(木) 09:42:240467デフォルトの名無しさん
2007/07/05(木) 22:32:12作成しているのですが、索引がどうしても文字化けしてしまいます。
INPUT_ENCODING = Shift-JIS
DOXYFILE_ENCODING =UTF-8
と設定し、ページに関しては文字化けは解消されたのですが…
何か解決策があれば教えてください。
0468デフォルトの名無しさん
2007/07/05(木) 23:25:270469デフォルトの名無しさん
2007/07/05(木) 23:32:48目に入ったここで聞いてしまった;
別んとこで聞きます。
0470デフォルトの名無しさん
2007/07/06(金) 00:35:51int型の値をテキストボックスに表示したいのですが、
int→System::Stringに変換できず困っています。
int→std::stringやSystem::String→intはぐぐると出てくるのですが、
int→System::Stringが出ません。
int型の値をいったんchar型の配列に入れなおして、Stringに変換しようと
しても、やはりコンパイルエラーになってしまいます。
どのようにするべきでしょうか?
0471デフォルトの名無しさん
2007/07/06(金) 00:54:43System::String^ s = i.ToString();
0472470
2007/07/06(金) 00:58:52ToString()を使えば一発なんですね。
0473デフォルトの名無しさん
2007/07/06(金) 03:27:57もうみんなMFC使ってないんですか?
0474464
2007/07/06(金) 09:09:54ぜんぜんVC使いこなせてないんですねえ。
質問した私が馬鹿でした。
0475デフォルトの名無しさん
2007/07/06(金) 09:15:010476デフォルトの名無しさん
2007/07/06(金) 09:21:09そうそう、お前のがレベルが上なんだからこんなスレにはもう用無いだろ?
2度と来なくていいよw
0477デフォルトの名無しさん
2007/07/06(金) 10:05:45ざっと 見て4冊ぐらいにあった
0478464
2007/07/06(金) 10:15:390479デフォルトの名無しさん
2007/07/06(金) 10:25:520480デフォルトの名無しさん
2007/07/06(金) 10:28:170481デフォルトの名無しさん
2007/07/06(金) 15:37:420482デフォルトの名無しさん
2007/07/06(金) 16:40:540483デフォルトの名無しさん
2007/07/06(金) 16:51:03すみません。できました。
0484デフォルトの名無しさん
2007/07/06(金) 23:56:03いちいちLつけるのめんどくさい(´・ω・`)
0485デフォルトの名無しさん
2007/07/07(土) 00:33:22あったとしてもソースコードの文字コードと実行ファイルの文字コードは関係ないので、
ワイド文字・文字列にLを付けなければいけないことに変わりは無いぞ。
0486デフォルトの名無しさん
2007/07/07(土) 11:34:29unicodeからマルチバイトに。
0487464
2007/07/07(土) 11:50:40そこに全部答えが載ってるってさ。
0488デフォルトの名無しさん
2007/07/07(土) 11:56:01TCHARではなくWCHAR固定なら意味無いだろ。
0489デフォルトの名無しさん
2007/07/07(土) 12:15:55VC6から移行したら、文字列全部にLを付けなくちゃいけなくなった。なんとかならない?
ってことでは。そういう人向けには、>>486でOK。
0490デフォルトの名無しさん
2007/07/07(土) 12:18:080491デフォルトの名無しさん
2007/07/07(土) 14:45:37m9(^Д^)
0492デフォルトの名無しさん
2007/07/07(土) 16:49:06迷子センターじゃないんだし、泣いてたら誰かが面倒みてくれると思ってんの?
0493デフォルトの名無しさん
2007/07/07(土) 23:18:24vector<string> v;
string message = "This is a pen";
boost::algorithm::split( v, message, is_space() );
こんなテストコードをコンパイルすると
error C2265: '<Unknown>' : サイズが 0 の配列への参照は不正です。
コンパイルされたクラスのテンプレートのインスタンス化 'boost::algorithm::size_descriptor<I>' の参照を確認してください
fatal error C1506: ブロックが大きすぎて、コンパイルできません。
こんな調子なのですが
0494デフォルトの名無しさん
2007/07/07(土) 23:21:21試しにVC++ 2005 Expressでも入れてみ。
0495デフォルトの名無しさん
2007/07/07(土) 23:25:31やっぱりそうでしたか、古すぎるんだな
0496デフォルトの名無しさん
2007/07/08(日) 10:59:320497デフォルトの名無しさん
2007/07/08(日) 11:17:050499デフォルトの名無しさん
2007/07/08(日) 12:00:110500デフォルトの名無しさん
2007/07/08(日) 12:56:25ある程度自分で調べて違いをまとめてから質問してくれる?
0501デフォルトの名無しさん
2007/07/08(日) 13:02:380502デフォルトの名無しさん
2007/07/08(日) 14:52:110503デフォルトの名無しさん
2007/07/08(日) 14:55:170504デフォルトの名無しさん
2007/07/08(日) 15:27:460505デフォルトの名無しさん
2007/07/09(月) 08:42:42GetCursorPos(&mp);
if (mp.y>200) { //mpはPOINT
SetWindowPos(hWnd,0,0,0,40,80,0);
}
(VC++6.0 SDK)
上記のような書き方でマウスカーソルのY座標が
200を超えたらウィンドウのサイズを変えるようにしたいんだけど
(ウィンドウのサイズは50,50 位置は 0,0)
どうもこの書き方だと出来んのです。
どこをければいいんでしょう?
0506デフォルトの名無しさん
2007/07/09(月) 08:48:490507505
2007/07/09(月) 08:58:13説明不足ですいません。
本当は「普段はデスクトップ左上で小さく待機し
マウスカーソルが当てられるとウィンドウが大きくなり
マウスカーソルがウィンドウから出ると元の大きさに戻るランチャー」を作りたくて
実験してました。
どうやら、WM_MOUSEMOVEだとウィンドウの外に出た時
効かないようです。
マウスカーソルがウィンドウ外にあっても
動いたのを感知できるメッセージってありますか?
0508デフォルトの名無しさん
2007/07/09(月) 09:17:30ウインドウの外にメッセージ来ないのが原因だって
わかってないみたいだから
200以上にしてやってみろと言ったの
0509デフォルトの名無しさん
2007/07/09(月) 09:52:51SetCapture()を使う
離れたのが知りたいだけなら↓の手段もある。
http://support.microsoft.com/kb/183107/ja
0510509
2007/07/09(月) 10:17:27ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_trackmouseevent.asp
こっちね
0511デフォルトの名無しさん
2007/07/09(月) 19:42:370512デフォルトの名無しさん
2007/07/09(月) 23:31:25#define ABC( prm00, prm01, ... ) \
func( prm00, prm01, ...);\
void func( int prm00, int prm01, ... )
{
}
エラーになってしまいます・・・
0513デフォルトの名無しさん
2007/07/09(月) 23:56:18でいいんでね?
0514デフォルトの名無しさん
2007/07/10(火) 01:43:42typedef使えヴォケ
0515デフォルトの名無しさん
2007/07/10(火) 02:09:420516デフォルトの名無しさん
2007/07/10(火) 02:11:07で
ABC(prm01, prm02, prm03, prm04);
か
#define ABC(params) func params
で
ABC((prm01, prm02, prm03, prm04));
か
好きな方を
0517デフォルトの名無しさん
2007/07/10(火) 09:48:06ボタンを押してるときに使う例がほとんどなのであって、押してる間しか効かないわけではない。
他のウィンドウをクリックすると解除されるけどね。
0518デフォルトの名無しさん
2007/07/10(火) 12:56:300519デフォルトの名無しさん
2007/07/10(火) 13:54:330520デフォルトの名無しさん
2007/07/10(火) 14:12:56C# がおすすめ だからもう来ないで。
0521デフォルトの名無しさん
2007/07/10(火) 19:06:04圧倒的多数派はCとC++だよね。
過去の言語っていえば、過去の言語だけど。
生まれてちょっとだけチヤホヤされ、誰も話題にしなくなった言語は、C生存中に
いくつあるだろう。
現在の言語で20年後にも話題にされるような言語はあるのだろうか。
0522デフォルトの名無しさん
2007/07/10(火) 19:38:140523デフォルトの名無しさん
2007/07/10(火) 19:42:57糞言語だって。
0524デフォルトの名無しさん
2007/07/10(火) 19:46:17それでも、オンライン端末でWWWの元祖みたいな画面(CICSとか)で
DBとはSQLでデータやりとりしてたんだぜ。
0525デフォルトの名無しさん
2007/07/10(火) 19:54:160526464
2007/07/11(水) 06:42:21http://www5b.biglobe.ne.jp/~kouta_y/c/c07.html
このページで仮想リストコントロールを寝ずに勉強しました。すごく分かり易いサンプルで助かりました。
でもリストビューのソートは自前でデータをソートさせなくちゃならないので、
このサンプル通り再起関数使ったクイックソートでやったら、
ちょーパソが固まってスタックオーバーフローになっちゃいました。
ちょーいっぱいなデータを扱うために仮想リストにするのに、ちょーいっぱいなデータを仮想関数使ったクイックソートを使うとスタックオーバーフローになるのは当たり前なのにさっき気付きました。
いったいどういうつもりであんなサンプル作ったんですか?
ちなみにシェルソートも寝ずに勉強して何とかなりました。
0527464
2007/07/11(水) 06:45:09間違えました
>ちょーいっぱいなデータを再起関数使ったクイックソート←○
0528デフォルトの名無しさん
2007/07/11(水) 07:09:330529デフォルトの名無しさん
2007/07/11(水) 08:24:56丸ごとパクって使う馬鹿はいない
0530デフォルトの名無しさん
2007/07/11(水) 19:06:26何か作るか思って絵を描く、動かす為にドットパターンを作る、シナリオ考える
ここまでは誰でも行けると思うが
いざ、形にしようと行動するとプログラム出来ないし止めたになる
これを回避するには楽しさを語って貰うのが一番だと思うんだ
0531デフォルトの名無しさん
2007/07/11(水) 19:36:09あんまりデータ多い時は実データをソートするのは無駄
仮想リストなんだから要求されてもないデータを並べ替える必要ない
0532デフォルトの名無しさん
2007/07/11(水) 20:42:20昔、ソート速度が遅いのを修正した時は、
比較毎にリストビューにアイテムの文字列を問い合わせていたのが原因だった。
その時は、予めLVITEM.lParamを一意の値&ソート直前に必要な項目を全取得してlParamと対応付け、
として問い合わせを無くすだけでかなり改善した。
0533デフォルトの名無しさん
2007/07/12(木) 06:46:49ではコンストラクタが呼ばれるのですが
CHoge hoge;
の場合はコンストラクタは呼ばれますか?
0534デフォルトの名無しさん
2007/07/12(木) 06:57:290535デフォルトの名無しさん
2007/07/12(木) 07:02:000536デフォルトの名無しさん
2007/07/12(木) 08:44:510537デフォルトの名無しさん
2007/07/12(木) 09:23:200538デフォルトの名無しさん
2007/07/12(木) 23:44:25なにをいい加減なことを言っているのですか?
オブジェクトがメモリ上にインスタンスを作った時点でコンストラクタが呼ばれるでしょう
0539デフォルトの名無しさん
2007/07/12(木) 23:54:560540デフォルトの名無しさん
2007/07/13(金) 00:03:47ワロタ
0541デフォルトの名無しさん
2007/07/13(金) 00:43:45class A {
public:
A() { std::cout << "呼ばれたじゃないか、嘘つくなよボケが" << std::endl; }
};
int main() {
A a;
}
0542デフォルトの名無しさん
2007/07/13(金) 01:01:13ガリでも食ってろ
0543デフォルトの名無しさん
2007/07/13(金) 01:31:160544デフォルトの名無しさん
2007/07/13(金) 07:05:540545デフォルトの名無しさん
2007/07/13(金) 22:18:16定義と宣言の使い方が微妙でよくわからん
0546デフォルトの名無しさん
2007/07/14(土) 00:06:49class CFuga
{
public:
CFuga(){printf("CFugaクラスコンストラクタ\n");}
};
// クラス定義
class CHoge
{
public:
CHoge(){printf("CHogeクラスコンストラクタ\n");}
CFuga m_fuga; // メンバオブジェクト宣言。まだCFugaのコンストラクタは呼ばれない。
void func();
};
// メイン関数
int main(void)
{
printf("main内でCHogeオブジェクトの宣言\n");
CHoge hoge; // ここで初めてコンストラクタが呼ばれる。CFuga→CHogeの順。
printf("main内でCHogeメンバ関数呼び出し\n");
hoge.func();
}
// CHogeメンバ関数実装
void CHoge::func()
{
printf("CHogeメンバ関数内でCFugaオブジェクトの宣言\n");
CFuga fuga; // この関数が呼ばれるとここでもCFugaコンストラクタが呼ばれる。
}
0547デフォルトの名無しさん
2007/07/14(土) 01:47:29546がクラス定義と言っているものは宣言だし、
main内でのCHoge hoge;は、自動変数の定義と言える(定義は宣言を兼ねるが)。
そしてfuncの実装はメンバ関数の定義。
0548デフォルトの名無しさん
2007/07/14(土) 10:26:56// クラス宣言
class A;
// クラス定義
class A
{
int n;
};
0549デフォルトの名無しさん
2007/07/14(土) 21:19:480550デフォルトの名無しさん
2007/07/14(土) 21:27:230552デフォルトの名無しさん
2007/07/15(日) 01:02:18これまで正常に動いていた同じフォルダ内の
ソースファイルとヘッダファイルを
をsrcとincludeのフォルダに分けてました(整理のため)
ビルドの結果
fatal error C1083: include ファイルを開けません。'xxx.h': No such file or directory
というメッセージがでます
メニュー>ツール>オプション>プロジェクトおよびソリューション>VC++ディレクトリ
で前もって登録すればいいのかと思ったのですが
どのようにすればいいのかわかりません。どなたかアドバイスを願います
0553デフォルトの名無しさん
2007/07/15(日) 01:13:55構成プロパティ - C/C++ - 全般 - 追加のインクルードディレクトリ
に設定するのが無難かな。
0554デフォルトの名無しさん
2007/07/15(日) 01:22:21速レス有難うございましたm(_ _)m
試してみます
0555デフォルトの名無しさん
2007/07/15(日) 07:23:19「入力した値を大きなものから順に表示するプログラムを作れ」
と言う課題があり、ここまでは作ってみたのですが、「★」の部分で
どうしても下記のエラーメッセージが出てしまいます。
しかしどういう意味なのかが全く分かりません。
どなたか助言をお願いします・・・。
動作環境はVisual C++ 2003です。
#include<stdio.h>
int input(float data[], int n)//数値を入力し、なお且つ数値の個数を求める関数
{
int i;
for(i=0;i<n;i++)
{
printf("実数値を一つ入力してください: "); scanf("%f",&data[i]);
if(data[i]==0)
break;
}
return(i);
}
void swap(float *a,float *b)//引数としてアドレスを与えられた二つの変数の値を入れ替える関数
{
float c;
c=*a; *a=*b; *b=c;
return;
}
0556デフォルトの名無しさん
2007/07/15(日) 07:27:05float maxp(float *data,int n)//最大値が入っているアドレスを返す関数
{
int i=0; float s=0;
while(i<n)
{
if(s<=*(data+i))
{s=*(data+i);}
i++;
}
return(s);//★error C2440: '=' : 'float' から 'float *' に変換できません。
}
void sort(float *data,int n)//data配列内の数値を大きな値から順番に並べなおす関数
{
int i=0; float *x;
while(i!=n)
{ x=maxp(data+i,n-i); swap(x,data+i); i++; }
return;
}
main()
{
float x[100]; int i,j=0;
i=input(x,100); sort(x,i);
while(j<i)
{ printf("%f\n",x[j]); j++; }
}
0557デフォルトの名無しさん
2007/07/15(日) 08:01:180558556
2007/07/15(日) 13:47:45わかりました(´・ω・`)b
0559デフォルトの名無しさん
2007/07/17(火) 00:35:520560デフォルトの名無しさん
2007/07/17(火) 00:42:03実際にエラーになったのは、
★印の行じゃないのだろ?
maxp()の戻り値を使う所じゃね?
0561464
2007/07/17(火) 01:40:470562デフォルトの名無しさん
2007/07/17(火) 03:12:02関数maxp()はfloatを返すんだから、
*x=maxp(data+i,n-i);
にしないとマズイのでは?
0563デフォルトの名無しさん
2007/07/17(火) 04:15:47ファイルはコードのあるディレクトリのどこにおけばいいのでしょうか。
いろいろ試したのですが該当なしでした。。。
よろしくお願いします。
int input_statement_from_file(char *one_statement, int *statement_length)
{
FILE *fp;
char filename[64],
input_one_statement_buff[65536];
int state = 0,
length = 0;
gets_s(filename);
if ((fp = fopen(filename, "r")) == NULL){
printf("ERROR: could not open file. \n");
state = 1;
goto exit;
}
/* Get data till ";" detection */
while(fgets(input_one_statement_buff, 65536, fp) != ";")
{
length++;
state = 0;
}
fclose(fp);
exit:
return state;
}
0564デフォルトの名無しさん
2007/07/17(火) 04:48:37親プロセス次第で子プロセスのデフォルトカレントディレクトリが変化するので、
相対パスを使うときは注意しる。
0565デフォルトの名無しさん:563
2007/07/17(火) 05:18:05紹介ありがとう。
でも、”++”初めてなので、
Public Declare Function GetCurrentDirectory Lib "KERNEL32" Alias "GetCurrentDirectoryA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
という部分を扱い方(クラスの何か?)がわからんちんです。。。
0566デフォルトの名無しさん
2007/07/17(火) 06:00:49それVBからapi呼ぶ場合に使うやつだろ
ていうかapi使うの?
api使わずにやりたいなら
【初心者歓迎】C/C++室 Ver.39【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1182740506/
0567デフォルトの名無しさん
2007/07/17(火) 08:19:460568デフォルトの名無しさん:563
2007/07/17(火) 08:45:58そうみたいです。誤爆で済みません。
コンソールプログラムからはじめて最終的にapi使いたいと思っています。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfSystemIODirectoryClassGetCurrentDirectoryTopic.asp
を参考に
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
として呼ぼうとすると、
「 fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」
となります。何かコンパイルオプションでもあるんでしょうか?
0569デフォルトの名無しさん
2007/07/17(火) 08:49:49は?
何が必要かはそこに書かれてるだろうが
http://msdn2.microsoft.com/ja-jp/library/k8d11d4s(VS.80).aspx
0570デフォルトの名無しさん
2007/07/17(火) 09:00:30うちの父親もホームセンターで蛍光灯買ってきたけど
サイズ合わないから母に交換してきてくれと言われたけど
結局放置して埃かぶってる。
蛍光灯と言ってもいろいろ種類があるように
VCといってもいろんなプログラムの作り方があるんだ
だからいきなりわけのわからりプログラム作り始めてから
相談されても困るんだよね
基本から間違ってるんだと最初から作り直しだろうし
0571デフォルトの名無しさん
2007/07/17(火) 09:20:47絶対パスの指定方法
相対パスの指定方法
この辺知らないと作った本人がプログラム使えないだろう。
0572デフォルトの名無しさん:563
2007/07/17(火) 09:35:08コンパイルオプション指定で、無効にいくつかしたら/clrは使えるようになったようですが、
「識別子が見つかりません」となりました。わからない領域へ突入です。。。
0573デフォルトの名無しさん:563
2007/07/17(火) 11:39:47デバッグディレクトリ上のテストファイルを読み込めるようになりました。
ただ、
char buff[64];
while(fgets(buff, 64, fp) != NULL);
でデバッグすると、初回呼び出し時、fgets.c上の
(str != NULL)
というところに引っ掛かり中断してしまいます。
問題点を把握できていません。
このプログラム(>>563)の問題点を指摘していただけないでしょうか。
0574デフォルトの名無しさん
2007/07/17(火) 11:57:36中断した時の呼び出し履歴をみて、各階層の変数の値をチェックしよう。
0575デフォルトの名無しさん
2007/07/17(火) 12:01:14知らんぷりする気か
0576デフォルトの名無しさん
2007/07/17(火) 12:07:14つーか、、
>while(fgets(input_one_statement_buff, 65536, fp) != ";")
これは何をしたいの。fgetsの戻り値は何だっけ?
0577デフォルトの名無しさん
2007/07/17(火) 12:16:000578デフォルトの名無しさん
2007/07/17(火) 12:18:060579デフォルトの名無しさん
2007/07/17(火) 12:30:460580デフォルトの名無しさん:563
2007/07/17(火) 12:57:18済みません、ソース間違っていました、「ヌル」でない時でした。
ヌルまでラインゲットです。>>573のように書いています。
その上で、上記のようなエラーが発生しています。
>>575
もともと、fopen()でファイルがこの関数見つけられなかったんで、
パスを表示してみればというアドバイスだったんです。
>>574
fgets.cの57行でストップしているので、そこの流れを見てみます。
0581デフォルトの名無しさん
2007/07/17(火) 13:06:00VCやる前にCかC++の勉強した方がいいいな
CかC++スレへ行けば?
0582デフォルトの名無しさん:563
2007/07/17(火) 13:50:52ファイルをデバッグディレクトリへ置いて直接指定してみると実行できました。
>>581
そうします。ありがとうございました。
0583デフォルトの名無しさん
2007/07/18(水) 23:58:39ビット演算でおねがいします
RRRRR GGGGGG BBBBB
RRRRRRRR GGGGGGGG BBBBBBBB AAAAAAAA
0584デフォルトの名無しさん
2007/07/19(木) 00:03:32ttp://thespoke.net/forums/370434/ShowPost.aspx
0585デフォルトの名無しさん
2007/07/19(木) 00:29:04シフト演算子しらないのか?
0586デフォルトの名無しさん
2007/07/19(木) 00:34:51ANDとORと左右シフトくらい知っとけ
0587デフォルトの名無しさん
2007/07/19(木) 01:38:03知ってますけど なんかちがうっぽいんで聞いているんです
0588デフォルトの名無しさん
2007/07/19(木) 01:41:020589bitの方向が逆だったりエンディアンが逆だったりしても私は謝らない
2007/07/19(木) 01:49:13unsigned tempR = rgb16 >> (5 + 6);
unsigned tempG = (rgb16 >> 5) & ((1 << 6) - 1);
unsigned tempB = rgb16 & ((1 << 5) - 1);
unsigned long rgb32 = (tempR * ((1 << 8) - 1) / ((1 << 5) - 1)) << (8 + 8 + 8)
+ (tempG * ((1 << 8 - 1) / ((1 << 6) - 1)) << (8 + 8)
+ (tempB * ((1 << 8 - 1) / ((1 << 5) - 1)) << 8;
0590デフォルトの名無しさん
2007/07/19(木) 04:05:290591デフォルトの名無しさん
2007/07/19(木) 14:59:32>ちがうっぽい
と思ったんなら、何でそう思ったかの過程を書けよ。
0592デフォルトの名無しさん
2007/07/21(土) 09:27:16while文実行中(無限ループ)にそのボタンを押されるとプログラムを終了する、
という感じのものを作りたいんですが、どうすればいいですか?
while文実行中はボタンを押しても無反応になってしまいます。
0593デフォルトの名無しさん
2007/07/21(土) 09:29:05while文実行中にボタンが押されてないか確認
0594デフォルトの名無しさん
2007/07/21(土) 09:39:380595デフォルトの名無しさん
2007/07/21(土) 09:53:49ループをUIスレッドとは別スレッドで実行しろ
ボタン押されたらイベントハンドラでフラグでも立てるかEventをシグナルして
それをループ側でチェックすればいい
フラグの変数を使うのならvolatileにするのを忘れずに
0596592
2007/07/21(土) 09:57:370597デフォルトの名無しさん
2007/07/21(土) 09:59:520598デフォルトの名無しさん
2007/07/21(土) 10:01:59ゲームじゃないの
0599592
2007/07/21(土) 10:05:380601デフォルトの名無しさん
2007/07/21(土) 10:13:20m9(^Д^)プギャー あほすぎてわろた
0602592
2007/07/21(土) 10:22:140603592
2007/07/21(土) 10:27:30スレッド難しすぎで諦めました。
0604デフォルトの名無しさん
2007/07/21(土) 10:31:18>>600っぽいが
0605デフォルトの名無しさん
2007/07/21(土) 12:22:06諦めるのが一番簡単
0606デフォルトの名無しさん
2007/07/21(土) 12:34:270607592(本物)
2007/07/21(土) 13:28:52>>595
スレッドは難しそうなイメージがあり敬遠しておりましたが、
この機会に勉強してみようと思います。
>>597
例えば10秒経過したら自動的にプログラムを終了するとかでしょうか?
出来れば、ボタンが押されたときに終了させたいのです。
>>598
ボタンが押される(イベント)→終了
これはイベントドリブンということになるのでは?
とりあえずスレッドを調べてみます。アドバイスサンクス。
0608デフォルトの名無しさん
2007/07/21(土) 13:40:16m9(^Д^)プギャー あほすぎてわろた
0609デフォルトの名無しさん
2007/07/21(土) 13:41:19GUIプログラム作ったりネットワークプログラミングとかするならスレッドの知識は必須
がんばれ
質問するときトリップつければ偽者は出ないよ
というか見分けが付く
0610デフォルトの名無しさん
2007/07/21(土) 13:56:28スレッド簡単、消防でも分かる
0611デフォルトの名無しさん
2007/07/21(土) 21:06:55別に必須じゃないだろ。
何のために、WSAASyncSelect なんてものがあるんだよ。
まあ、個人的にはスレッドの方がわかりやすいと思うが、
スレッド起こせるようになっただけで、スレッドなんて
簡単と勘違いしてる奴がいるのが難点。
0612デフォルトの名無しさん
2007/07/21(土) 21:18:320613デフォルトの名無しさん
2007/07/22(日) 00:49:45Whileになんの意味があるのかイミフメイ
0614デフォルトの名無しさん
2007/07/22(日) 00:50:09でも慣れてくると592で言ってることぐらいは簡単に書けるようになるから頑張れ。
0615デフォルトの名無しさん
2007/07/22(日) 00:54:030616デフォルトの名無しさん
2007/07/22(日) 01:47:12作った奴(すでに退社してたけど)ぶっ殺したくなった
0617デフォルトの名無しさん
2007/07/22(日) 01:52:44ネットワークはスレッド使えば確かに簡単かもしれないが
GUIプログラムにスレッドが必須かといわれるとそうでも無い気がする
まぁ、メッセージループが単一だといろいろ問題があるのはわかるけど
0618デフォルトの名無しさん
2007/07/22(日) 10:15:00その昔の俺もはまったなぁ…
結局1つスレッド作って回避したけど。
0619デフォルトの名無しさん
2007/07/22(日) 23:18:55VC++ Express Editionを使っています
つい先日プログラミング始めたばかりで,一応C++の参考書に
目を通したので簡単なゲームでも作ってみたいと思ったのですが
プロジェクト作成のさいにどれを使ったらいいのか分かりません
0620デフォルトの名無しさん
2007/07/22(日) 23:23:24http://homepage3.nifty.com/ishidate/vcpp05_1/vcpp05_1.htm
0621デフォルトの名無しさん
2007/07/23(月) 00:14:06バグらない?
0622デフォルトの名無しさん
2007/07/23(月) 00:17:12すいませんコンソールアプリケーションじゃなくて
ウィンドウアプリケーションが作りたいんです
0623デフォルトの名無しさん
2007/07/23(月) 00:27:25ttp://www.kumei.ne.jp/c_lang/
0624デフォルトの名無しさん
2007/07/23(月) 00:31:37多分>>619の必要としてる情報は
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
だと思うよ
0625デフォルトの名無しさん
2007/07/23(月) 00:32:17無理じゃね
0626デフォルトの名無しさん
2007/07/23(月) 00:35:01多分>>619の必要としてる情報は
http://pc11.2ch.net/test/read.cgi/tech/1162452408/l50.
だと思うよ
0627デフォルトの名無しさん
2007/07/23(月) 00:38:35>>625
自分でもきついと思いますがやらなくてはいけないことなんで('A`)
0628デフォルトの名無しさん
2007/07/23(月) 00:39:470629デフォルトの名無しさん
2007/07/23(月) 01:41:48大きくすると、タブバーやボタンバーの灰色の下地の横の
長さが足りなくなって、右側に白い余白ができてしまうのですが、
どうしたら余白を無くすことができるでしょうか?
0630デフォルトの名無しさん
2007/07/23(月) 02:32:40テーマとか設定してる?
0631629
2007/07/23(月) 02:41:47レスありがとうございます。
テーマ等は設定せず、全てデフォルトで使っています。
SDKで、「猫でもわかるプログラミング」を参考に
タブバーやツールバーを作ってみたら、メイン
ウィンドウの幅を起動時の幅より広げた時に、広げた
幅の部分のタブバーやツールバーの下地が表示
されなくなってしまいます。
0632デフォルトの名無しさん
2007/07/23(月) 05:24:33猫でもわかるの作者じゃないからどうやったらそんな風になるのか知らないし、
プログラムに問題があるなら作者に聞いてみれば?
0633デフォルトの名無しさん
2007/07/23(月) 05:36:420634デフォルトの名無しさん
2007/07/23(月) 05:51:11ウインドウの幅に合わせたいという意味だったら
ウインドウの幅が変ったらツールバーの幅を
ウインドウの幅に合わせるんだよ(自分で)
0636デフォルトの名無しさん
2007/07/23(月) 15:51:04ソースファイルがプロジェクトファイルと同じフォルダに作成されるのですが、
ソースファイルの作成されるフォルダを別の場所に変更することはできないのでしょうか?
ソースファイルとヘッダーファイルを別のフォルダにしたいのです。
0637デフォルトの名無しさん
2007/07/23(月) 15:51:39別にできるよ。
0639636
2007/07/23(月) 16:03:170640636
2007/07/23(月) 16:13:05もう一度プロジェクトに追加してビルドすると
fatal error C1083: include ファイルを開けません。'stdafx.h': No such file or directory
というメッセージが表示されます。これが解決したらなんとかなりそうなのですが・・・。
0641デフォルトの名無しさん
2007/07/23(月) 16:23:33実ファイルを移動
プロジェクトへファイルを追加
0642デフォルトの名無しさん
2007/07/23(月) 16:26:24分けたら、#include "xxx.h" → #include "../header/xxx.h" とかにすんの?
0643デフォルトの名無しさん
2007/07/23(月) 16:40:54newで生成したとき役目が終わると自動的に破棄されますか?
deleteをしなければ破棄されていないことになりますか?
0644636
2007/07/23(月) 16:48:44昔UNIXの仕事をした時に、そこではソースをフォルダ分けしていたので
同じようにしないと気持ちが悪いというか・・・。
フォルダが適当に分かれていた方がファイルが探しやすいような気がします。
たとえば(ダイアログ名)フォルダの下にソースとヘッダの両方が置いてあるとか
>>641さんのやり方でやった時に640のメッセージが出てきてビルドできないのです。
0645デフォルトの名無しさん
2007/07/23(月) 17:00:30だったらプリコンパイルヘッダーの使用をやめてstdafx.hは捨てちゃえば
0646デフォルトの名無しさん
2007/07/23(月) 17:03:04そのままではdeleteは呼ばれない。
PostNCDestroyでdelete this を呼んでWindowが破棄されたら
オブジェクトも消えるようにできる。
0647デフォルトの名無しさん
2007/07/23(月) 17:04:01リリースビルドをして実行すると
>構成が正しくないといわれて起動できないです…
が表示されます。原因が分かりません。
どなたか意見などありましたら宜しくお願いします
0648デフォルトの名無しさん
2007/07/23(月) 17:04:41for(int i=0; i<10; i++){
Testsure= new Test;
}
をするとどうなりますか?deleteしないで
newを繰り返しますから以前にnewした領域は
破棄されませんよね?
0649デフォルトの名無しさん
2007/07/23(月) 17:05:28ありがとうございます
0650636
2007/07/23(月) 17:18:23実はプリコンパイルヘッダーとかstdafx.hの意味もよくわかってなかったりします・・・。
ところで自己解決しました。
[プロジェクトのプロパティ]−[構成プロパティ]−[C/C++-]-[全般]タブの
追加するインクルードディレクトリにヘッダを格納したディレクトリを設定すればビルドできました。
教えて下さった皆様ありがとうございました。
0651デフォルトの名無しさん
2007/07/23(月) 17:51:410652デフォルトの名無しさん
2007/07/23(月) 18:08:310653デフォルトの名無しさん
2007/07/23(月) 20:00:57Testクラスが中でdelete this;とか発行してるかもしれないし。
削除オブジェクトに登録して削除してもらう実装も考えられる。
あるいは、実はGCを動かしているのかもしれない。
0654デフォルトの名無しさん
2007/07/23(月) 22:05:05クラスBから、所望のタイミングでクラスAの関数を呼びたいと
思っております。
そのために、関数ポインタを作ったのですが、コンパイルすると、
void (__clrcall *)(int)からvoid(__cdecl *)(int)に変換できません
というコンパイルエラーになります。
原因を調べてみると共通言語ランタイムをclr:/pureではなく/clrのため
というのがわかりました。他で開発されたdll、Libraryを使用するため、
/clrでコンパイルするように設定しております。
共通言語ランタイムを/clrにしたとき、
関数ポインタの受け渡しをするためにはどうすればよいでしょうか?
例などを教えていただけたらうれしいです。
[class Aの一部]
CLASSB classb // class bの作成
classb.passfunc(funcpointer); //関数ポインタfuncpointerを渡す
// この行でエラーが出る。
void funcpointer(int){
// funcpointerの中身
}
[class bの一部]
void passfunc(void (*func_)(int)){
// passfuncの処理
}
0655デフォルトの名無しさん
2007/07/23(月) 22:54:29そのエラーメッセージだと、void passfunc(void (__clrcall *func_)(int))にしたらどうだろう?
いざとなったらBoost.Functionとかデリゲートとか
関数呼出できるものなら何でも受け付けるぞって奴を使えばいい。
0656デフォルトの名無しさん
2007/07/23(月) 22:58:59関数の呼び出し規約についてちゃんと勉強しなされ
0657デフォルトの名無しさん
2007/07/24(火) 13:48:18以前はVisual Stadio 6.0をフルインストールした状態のPCで使ってた『自作ソフト.exe』を
今回は容量の少ないシリコンディスク(2GB)のFAタイプPCで使用したいのですが、
Visual Stadio 6.0をインストールするほど容量が確保できないので、
そのまま『自作ソフト.exe』を起動したところ、アプリケーションエラーが発生し
ソフトが起動しませんでした。
専門書等を見てみましたが
1)メイン及び、監視タスクのパス(フォルダ)位置が、pathに登録されているか?
2)アプリでOCX等が使われてたりすると、アプリのみでは実行できない場合があるため、
必要なOCXをそのPCに登録する必要がある。
などと書いてありましたがはっきりいってわかりません
ちなみに、私は初心者というか普通にWordやExcelぐらいしか使えないレベルの人間なので
ビルド(リビルド)ぐらいしか出来ないくらいの知識しかありません…
しかもこの『自作ソフト.exe』を作った人が会社辞めてしまってるので、このソフトの中身すら
私には理解できない現状です。
(起動したときの使い方ぐらいしかわからないんです…)
ちなみにOSはWindows2000 SP4で、
エラー内容は
「エラーが発生したので。『自作ソフト.exe』を終了します。
プログラムをもう一度開始する必要があります。」
という表示が出てきました。
0658デフォルトの名無しさん
2007/07/24(火) 13:55:50Studioだろ
まず、Releaseビルドかどうか
DebugだったらReleaseでビルドしなおして
0659デフォルトの名無しさん
2007/07/24(火) 14:06:08我が社にご依頼いただければ調査から必要な修正まで格安にて対応させていただきます。
0660デフォルトの名無しさん
2007/07/24(火) 14:06:50MFCが共有DLLを使うようになってるだけの予感。
ソースがあってビルドできるならプロジェクトの設定に全て書いてあるのだが、
わかりませんの連発ではなんとも。
0661デフォルトの名無しさん
2007/07/24(火) 14:43:50お任せしたいと思います。連絡先を教えて下さい。
0662デフォルトの名無しさん
2007/07/24(火) 15:00:500663デフォルトの名無しさん
2007/07/24(火) 15:11:59特定の業務専用機だろ
0664デフォルトの名無しさん
2007/07/24(火) 15:18:060665デフォルトの名無しさん
2007/07/24(火) 15:18:13それ出力して見てもらうのがいいかもな
0666デフォルトの名無しさん
2007/07/24(火) 17:33:13この記述って普通の関数とどう違うの?
0667デフォルトの名無しさん
2007/07/24(火) 17:37:09namespaceをグローバルに限定している。
クラス内で使用しているなら、メンバ関数を誤って呼ぶのを防止する効果がある。
0668デフォルトの名無しさん
2007/07/24(火) 19:37:54MFCDLLのバージョンはチェックしたのか?
0669デフォルトの名無しさん
2007/07/24(火) 23:39:54どういうときにつけるのでしょうか。
0670654
2007/07/24(火) 23:49:24void passfunc(void (__clrcall *func_)(int))にしても同様の
コンパイルエラーが出ました。関数ポインタを渡すことは
不可能なのでしょうか・・・?
デリゲートを薦めてくださいましたが、デリゲートはC#特有のものと
思っておりました。検索してもC#ばかり。
みなさんは関数を他のクラスに渡すときどのようにしてらっしゃるの
ですか?
0671デフォルトの名無しさん
2007/07/25(水) 00:00:370672デフォルトの名無しさん
2007/07/25(水) 00:09:11基のコードはネイティブC++でもコンパイルできないだろ。
まず、非静的メンバ関数からポインタへの変換は存在せず、
非静的メンバにアドレス演算子を使用しても、
得られるのはメンバへのポインタと言い、普通のポインタとは全く別物。
更にC++/CLIの参照・値クラスでは、メンバへのポインタが使えない。
デリゲートはC#特有のものではなく、CLIが持っている機能でC++/CLIからも使える。
http://msdn2.microsoft.com/ja-jp/library/ms235237(VS.80).aspx
でないとWindows Formsなんか困る。
>>669
下線で始まる名前は処理系のためのもので、一般の利用者が使ってよいものではない。
そのコードはどうせマネージドC++だろ。.NETに対応させるため、
様々なキーワードを追加しているが、ことごとく独自拡張扱いとして
処理系予約の名前になるよう追加されたキーワードは下線で始まるようになっている。
0673654
2007/07/25(水) 00:09:56boost::functionはなるべく使いたくないと思っております。
Microsoft提供のものでできたらと思うのですが・・・・
0674デフォルトの名無しさん
2007/07/25(水) 00:12:55何年先のことだかわからないけど。
0675654
2007/07/25(水) 00:17:50メンバのポインタが使えないことは初めて知りました。
現在、Form1.hという一番最初に生成されたヘッダファイル内に
関数を作成し、それを関数ポインタとして別クラスに渡していました。
関数ポインタを使うことはそもそも不可能ということでしょうか?
0676デフォルトの名無しさん
2007/07/25(水) 00:46:12手で写したので写し漏れがあるなんてことはないか?
このコードで同じエラーメッセージを再現できた。
しかしこれだと655で解決できるんだよな……。
void passfunc(void (*pfn)(int));
ref struct S
{
static void f(int);
};
void test()
{
passfunc(S::f);
}
0677654
2007/07/25(水) 01:06:08現在、以下のようにしていますが、コンパイルエラーになります。
// Form1.h
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
ClassA classa;
classa.SetFunc(FuncPointer);
}
public: static void FuncPointer(int pos){pos = 0;}
// ClassA.h
class ClassA
{
// 省略 //
〜〜〜〜
private:
private:
void (*PointerFunc) (int);
public:
void SetFunc(void (__clrcall *PointerFunc_) (int )){
PointerFunc = PointerFunc_;
}
};
0678デフォルトの名無しさん
2007/07/25(水) 01:08:30SetFuncの引数だけでなく、それを代入するPointerFuncも
void (__clrcall *)(int)型にしないと駄目だよ。
関数へのポインタ型なんて、いちいち打つのが面倒だからtypedefしたほうがいいよ。
0679デフォルトの名無しさん
2007/07/25(水) 01:10:32ところで、FuncPointerのpos = 0は、
ここで晒すためだけのダミーだよな?
0680654
2007/07/25(水) 01:15:52ありがとうございます!コンパイルが通りました。これで次のコーディング
に進めます。
typedefにして設定するようにします。
ところで、このClassA.hを利用しようとする他のプロジェクトファイルを
作るとしたら、そのプロジェクトファイルは必ずVC++2005で作成した
プロジェクトでなければならないのでしょうか?それとも、他の(VBや2003など)
で作成したプロジェクトにも組み込めるのでしょうか?
非常に初歩的な質問で申し訳ありません。ついでで勝手ながらですが、
教えてほしいです。。。
0681デフォルトの名無しさん
2007/07/25(水) 01:16:110682デフォルトの名無しさん
2007/07/25(水) 01:22:16そのままではVC++でしか使えない。
他のCLI言語で使いたければ、.NETクラスライブラリ(だったかな)のプロジェクトで
マネージドDLLを作る。その中でClassAを公開の参照クラスとして定義すればいい。
できたDLLと中のクラスは参照設定すれば使えるようになる。
ただし、CLRのバージョンが違うので、VS .NET 2002/2003では使えない。
当然CLI、特にCTSやCLSの制約を受けることになるので、その点は厄介。
0683デフォルトの名無しさん
2007/07/25(水) 01:29:24バカマイクロソフトに言ってるんだけどね。
0684654
2007/07/25(水) 01:37:10要するに__clrcallの呼び出し規約に設定することで、一気に
汎用度が下がるのですね・・・?
じゃあ、普通、VC++2005で汎用的?というか一般的にライブラリを公開
(提供)する場合はどうやって関数ポインタを実現するのでしょうか?
何かずれている質問をしているのかもしれません。
0685デフォルトの名無しさん
2007/07/25(水) 01:56:51VC++だけなら気にしなくていい。
__stdcallと__cdeclの違いは調べておいたほうがいい。
__thiscallもついでに調べておけば、クラスとメンバの関係が理解できるかもな。
0686654
2007/07/25(水) 01:59:12呼び出し規約について深く調べてみます。
みなさん、ありがとうございましたm(_ _)m
0687デフォルトの名無しさん
2007/07/25(水) 02:46:550688デフォルトの名無しさん
2007/07/25(水) 16:19:55マネージドC++とC++/CLIなら件の__clrcallも欠かせないだろ。
0689464
2007/07/25(水) 19:46:580690デフォルトの名無しさん
2007/07/25(水) 19:51:54文字化けしてしまうのですが、どのようにしたらちゃんとキャストできますか?
0691デフォルトの名無しさん
2007/07/25(水) 19:57:40初心者のスレの話題ですが?w
0692デフォルトの名無しさん
2007/07/25(水) 20:25:12キャストは不可能です。
0693デフォルトの名無しさん
2007/07/25(水) 20:26:25orz
では、System::Stringからの変換は可能ですか?
0694デフォルトの名無しさん
2007/07/25(水) 20:49:18PtrToStringCharsの戻り値をpin_ptr<WCHAR>型の変数で受けるだけ。
(WCHARの代わりにwchar_tやSystem::Charでも可)
なお、<vcclr.h>のインクルードが必要。
また、pin_ptr<T>はT*のように扱える。
http://msdn2.microsoft.com/ja-jp/library/585whdf9(VS.80).aspx
0695デフォルトの名無しさん
2007/07/25(水) 21:12:59デバッグモードで起動させ、実行ファイルが含んでいるシンボル情報を動的に
取得したいと思っています。
CreateProcessで一度サスペンドさせ、SymInitializeをコールしてシンボルハンドラ
を初期化させてモジュールアドレスを設定したいのですが、実行ファイル本体に含む
シンボルを取得するモジュールアドレスに何を設定するかわかりません。
実行ファイルが読み込むDLLのシンボルは、デバッギが発生させるDLL_LOAD割り込みから
取得できています。
試しにLoadModuleイベントをすべて見張ってシンボルを出力してみたところ、実行
ファイルに含まれるシンボルは取得できませんでした。
誰か分かる人いませんか?
0696デフォルトの名無しさん
2007/07/25(水) 22:35:380697695
2007/07/26(木) 22:43:34MapDebugInformation関数を呼んで、実行ファイルのベースアドレスを取得して
SymEnumSymbolsCallbackから取得できました。別にCreateProcessを呼んでも
呼ばなくてもできますね。PDBファイルを作るように実行ファイルを作った時は
PDBファイルがないとシンボルは取得できないようです。
LoadModuleイベントを組み合わせると、実行ファイルが参照するシンボルを全て
見ることができました。(Win32の隠しAPIも見れましたが、あれは問題ないのかな?)
これでINT3仕込めば、シンボル参照ができるデバッガの完成です。
_64のサフィックスを付ける事ができる関数がほとんどなので、64bit対応も問題なさげ。
Vista対応は分からず。
0698デフォルトの名無しさん
2007/07/28(土) 22:04:40今日vc++を購入したのですが、教本で悩んでいます。
教本はc++のものでもよろしいのでしょうか?
まだプログラムを打ち込んだことが一度もないのでvc++についての基本概念
などが理解できるものがあれば教えていただけますか?
0699デフォルトの名無しさん
2007/07/28(土) 22:13:26まだだったら当然やっておかないと
0700デフォルトの名無しさん
2007/07/28(土) 22:16:34手を出さない方が良いでしょうか?
0701デフォルトの名無しさん
2007/07/28(土) 22:50:250702デフォルトの名無しさん
2007/07/28(土) 22:58:48そういうものでもない。
C++はC言語を拡張しているが、考え方は全く違う。
せっかくVC++を買ったのならそれで色々作ってみたら?
最初はコンソールアプリケーションで練習すると、分かりやすい。
赤くてでかい本でC++プログラム言語(かな?) 第4版
というのが、C++のバイブル扱いになっていると思う。値段も高い。
同じ体裁でC++ Primerもある
金があるならまずこの二つかな。
0703デフォルトの名無しさん
2007/07/28(土) 23:06:22もう買ってしまったんなら仕方ない。
まずはコンソールアプリケーションとC入門書ではじめるべし
0704デフォルトの名無しさん
2007/07/28(土) 23:15:09まずはC++(STL)がいいと思うぞ
0705デフォルトの名無しさん
2007/07/28(土) 23:57:32は、VC++でSTLが使える事を知らないらしい。
しかも、C++がいいというが、処理系を書いていない。
釣りかもしれない
0706デフォルトの名無しさん
2007/07/29(日) 00:04:53違うよ
統合環境として初心者向けでは無いんだ VC++は
初心者はコンパイルの速いBCCつかっとけ
0707デフォルトの名無しさん
2007/07/29(日) 00:22:58704はCやVC++の本はやめとけという意味だと俺は思ったぞ。
0708704
2007/07/29(日) 00:58:25とくに文字列操作はSTLから始めた方がいいぞ
0709704ウザイ
2007/07/29(日) 01:03:400710名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:32:020711名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:32:330712名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:33:310713デフォルトの名無しさん
2007/07/29(日) 01:34:30m9(^Д^)プギャー
0714名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:54:46ぎゃははw
0715名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:26:41テキストボックスに書きたいのですが、コンパイルができません。
初歩的かもしれませんが解決方法を教えてください。
コード
public: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
debug1();
}
int debug1()
{
textBox1->text = "あいう"; // ← 135行目
return 0;
}
エラーメッセージ
c:\〜\projects\test2\Form1.h(132) : error C2248: 'System::Windows::Forms::Control::text' : private メンバ (
クラス 'System::Windows::Forms::Control' で宣言されている) にアクセスできません。
c:\〜\projects\test2\Form1.h(25) : 'System::Windows::Forms::Control::text' の宣言を確認してください。
c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : 'System::Windows::Forms::C
ontrol' の宣言を確認してください。
テキストボックスのModifiersはpublicにしました(ここは関係ないんでしょうか)
public: System::Windows::Forms::TextBox^ textBox1;
0716名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:45:500717名無しさん@そうだ
2007/07/29(日) 03:03:47private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
testtext("あいう");
}
void testtext(System::String ^s)
{
this->textBox2->Text = s;
}
0718名無しさん@そうだ選挙に行こう
2007/07/29(日) 03:46:15ありがとうございます。
小文字のtextが原因だったようです。
しかし (System::String ^s) の意味も??です。
Visual C++ の道は険しそうです・・・
0719名無しさん@そうだ選挙に行こう
2007/07/29(日) 04:30:06お前さんがやってるのは「C++/CLI」だ。
「C++」ではないことを指摘しておくぞ。
0720名無しさん@そうだ選挙に行こう
2007/07/29(日) 06:36:54プログラミング初心者ならば、コンソールアプリをVC++の開発環境を使わないで作るのがいいかも
BCCを使ってもいいけどせっかく買ったVC++でもVC++上のビルドではなくて
コンソール上からでもコンパイル出来るからそれをやる方がいいと思う
古い考え方かもしれないけど、やっぱりc(c++)言語をやる人間はmakeファイル、コンパイル、リンク
の知識は知っていてほしいし
>>708
文字操作に関してはcから始めた方が良いと思う
文字操作はメモリの勉強の第1歩だし
以上、最近は管理職に回ってしまった中年SEの意見です
0721名無しさん@そうだ選挙に行こう
2007/07/29(日) 06:38:530722名無しさん@そうだ選挙に行こう
2007/07/29(日) 07:45:20> makeファイル、コンパイル、リンクの知識は知っていてほしいし
> 文字操作はメモリの勉強の第1歩だし
無くても出来ることをわざわざやる必要なし
関数の受け渡しにc_str()が必要になる事以外に、char型で操作する必要なし
ソースが難解になるだけだ
0723名無しさん@そうだ選挙に行こう
2007/07/29(日) 07:48:370724名無しさん@そうだ選挙に行こう
2007/07/29(日) 07:52:48文字列連結 + 、領域自動確保が使えすぎる charでやる必要がどこにある?
ポインタとかは考慮する必要はあるだろうが、文字列操作限定では
string型で出来ないことはないだろ
0725名無しさん@そうだ選挙に行こう
2007/07/29(日) 07:56:160726デフォルトの名無しさん
2007/07/29(日) 11:52:15それに入出力を扱うならストリーム、さらに STL 特有のイテレータ操作なども必要。
正直初心者には、ポインタよりハードルが高いと思うんだがなぁ。
0727名無しさん@そうだ選挙に行こう
2007/07/29(日) 12:06:32その過程でストリームやイテレータの概念を理解していけば一石二鳥だよ
ポインタ等の低レベルな操作はそれらを理解した後の方がやりやすい
ような気がするんだけどどうもそれはあんまり一般的じゃないようだ
というか、そもそもC/C++をやるやつそのものが周囲に少なかったり…orz
0728名無しさん@そうだ
2007/07/29(日) 13:21:15覚えてないし、要はしたいことをするためにどうすべきかを
調べる能力が大事だね。
0729名無しさん@そうだ選挙に行こう
2007/07/29(日) 14:53:370730名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:00:410731デフォルトの名無しさん
2007/07/29(日) 15:06:47初心者が覚えるならどっちから、って話だったはずだ
問題から履き違えたら、答えが分かれるのは当然だぞ
0732名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:45:540733名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:17:21いろんなところでつまずくからなぁ
不正なメモリ操作をしてるのに全く気づかないとかになりがち
0734名無しさん@そうだ選挙に行こう
2007/07/29(日) 17:09:330735名無しさん@そうだ選挙に行こう
2007/07/29(日) 17:35:16bikeshed discussion
ttp://0xcc.net/blog/archives/000135.html
0736デフォルトの名無しさん
2007/07/30(月) 16:59:561回目 2回目と作業をしていくと
メモリ使用量が40kbずつどんどん増えていきます
new deleteには気をつけてるつもりなんですが
他になにか原因になるようなものはありますか?
0737デフォルトの名無しさん
2007/07/30(月) 17:40:38デバッガで実行して終了時にメモリリークはダンプされる?
他は、GDIオブジェクト(BITMAPとか)はメモリ使用量に出るんだったか?
タスクマネージャでGDIオブジェクトの数を見れるので、漏れをチェックすべし。
0738デフォルトの名無しさん
2007/07/30(月) 18:55:42100回起動を繰り返して高々4Mでしょ。OK。合格。
0739デフォルトの名無しさん
2007/07/30(月) 19:43:45勉強してからレスしますね
>>738
起動じゃなくて
メッセージを受け取って作業して
その作業がし終わったらなので
4Mは大きいですよね
0740デフォルトの名無しさん
2007/07/30(月) 20:50:10はどういう時に使用するファイルなのか教えて下さい
0741デフォルトの名無しさん
2007/07/30(月) 21:33:280742740
2007/07/30(月) 21:43:47C++ではほとんど使われていない。と言う意味でしょうか?
回答ありがとうございました。
・・・出来れば<new.h>の意図するものを教えていただきたいです
0743デフォルトの名無しさん
2007/07/30(月) 22:28:10obsoleted
0744デフォルトの名無しさん
2007/07/30(月) 22:32:18なんで、new.h を開いてみようとか思わないの?
*new.h - declarations and definitions for C++ memory allocation functions
0745デフォルトの名無しさん
2007/07/30(月) 23:24:53operator newやnew[]、delete、delete[]などといった関数の宣言が置いてある。
new(ptr) hoge_tのようなvoid*の引数を1つ取る配置newなんかは、
これをインクルードしないと使えないはず。
0746740
2007/07/30(月) 23:32:110747デフォルトの名無しさん
2007/07/31(火) 16:06:27読み込むファイル名を指定する以下のプログラム
TCHAR tmpName[256];
sprintf_s( tmpName, sizeof(tmpName), "wanko.txt" );
を、構成プロパティ→全般→文字セット の項目が「Unicode 文字セットを使用する」
という設定のプログラムにコピーしたところ、コンパイルエラーが出ました。そこで、
WCHAR tmpName[256];
wprintf_s( tmpName, sizeof(tmpName), L"wanko.txt" );
と修正したところ、コンパイルは通ったのですが、
tmpNameに、「wanko.txt」の文字列が入っていないことがわかりました。
どこに問題があるのでしょうか?
あるいは回避方法などが、あれば教えてください。よろしくお願いします。
0748デフォルトの名無しさん
2007/07/31(火) 16:15:19やりたいことをはっきりしろ。
コンパイルエラーが出るのは、きちんとTCHARに対応したコードになってないからだ。
charでやりたいんなら
char tmpName[256];
sprintf_s(tmpName, sizeof tmpName, "wanko.txt");
TCHARでやりたいんなら
TCHAR tmpName[256];
_stprintf_s(tmpName, sizeof(tmpName)/sizeof(TCHAR), _T("wanko.txt"));
wchar_tでやりたいんなら
wchar_t tmpName[256];
_swprintf_s(tmpName, sizeof(tmpName)/sizeof(wchar_t), L"wanko.txt");
0749デフォルトの名無しさん
2007/07/31(火) 16:17:000750デフォルトの名無しさん
2007/07/31(火) 16:22:23int wprintf_s(
const wchar_t *format [,
argument]...
);
0751デフォルトの名無しさん
2007/07/31(火) 16:23:35wprintf_s()はprintf()のワイド文字版のセキュア版
>>747はsprintf_s()を置換するつもりで間違った関数を使ってしまったと言うだけ
0752デフォルトの名無しさん
2007/07/31(火) 18:44:47Unicodeが表示できないものもあるからな
0753747
2007/07/31(火) 22:02:44wprintf_s を swprintf_s と書き直したところ、意図したとおりに動きました。
どうもありがとうございます。
0754デフォルトの名無しさん
2007/07/31(火) 22:06:490755デフォルトの名無しさん
2007/07/31(火) 22:10:420756デフォルトの名無しさん
2007/07/31(火) 22:22:450757デフォルトの名無しさん
2007/07/31(火) 23:52:06どちらでも対応できるとですか?
0758デフォルトの名無しさん
2007/07/31(火) 23:58:390759デフォルトの名無しさん
2007/08/01(水) 00:04:57「正しくコーディングすれば」大丈夫。
>>748はその例。
もっとも、場合によってはそれが無駄に面倒なこともあるがな。
MBCSで必要なロジックが、SBCSやUCSの場合と明らかに異なる場合などがそうだ。
例えばTCHARでMBCSを考慮する場合は、文字へのポインタをインクリメントするのに
単に
s++;
と書いてはいけなくて、
CharNext()や_tcsinc()といったものを使わなければならない。
が、それは明らかに単なるポインタのインクリメントよりも高価な処理で、
記述も面倒になる。
0760デフォルトの名無しさん
2007/08/01(水) 00:27:15TCHARをほとんどWCHARとして扱うことが増えてる。
9x系OSは完全無視。
0761デフォルトの名無しさん
2007/08/01(水) 00:31:43TCHARをほとんどCHARとして扱うことが増えてる。
9xもNT系OSも完全考慮。
0762デフォルトの名無しさん
2007/08/01(水) 00:34:52せめてunicows.libをリンクしてください。
運が良ければそれだけで9xでも動きます。
0763デフォルトの名無しさん
2007/08/01(水) 01:34:47「^」ってどういう意味ですか?
0764デフォルトの名無しさん
2007/08/01(水) 01:43:06C++で.NETする気が無いなら知らなくても良い
0765デフォルトの名無しさん
2007/08/01(水) 01:44:540766デフォルトの名無しさん
2007/08/01(水) 01:46:22それなら、最初からTCHARなんぞ捨てて、明示的にchar/wchar_tに汁
APIはA/Wを明示汁
といいたいが、ATL/WTL/MFCはほぼTCHAR専用なんだよな……
0767デフォルトの名無しさん
2007/08/01(水) 03:30:21C++/CLI と gcnew でググれ。
0768デフォルトの名無しさん
2007/08/01(水) 03:33:010769デフォルトの名無しさん
2007/08/01(水) 04:49:22なんだ、マネージドC++か。興味なし。
0770デフォルトの名無しさん
2007/08/01(水) 04:59:48マネージドなプログラム組むならC++なんか使わねっつの!w
0771デフォルトの名無しさん
2007/08/01(水) 07:40:090772デフォルトの名無しさん
2007/08/01(水) 12:48:17ってか正直分かってないんです。
0773デフォルトの名無しさん
2007/08/01(水) 13:07:49std::stringはstd::basic_string<char>のtypedef。
0774デフォルトの名無しさん
2007/08/01(水) 13:33:56タスクマネージャーのメモリ使用量のところで
48000KBほどから少しずつ増えていき52000KBになると
例外エラーがでたあと
アサーションいれた覚えが無いのにアサーションがでてきました
これはメモリリークですか?
0775デフォルトの名無しさん
2007/08/01(水) 13:50:59デバッグ環境での実行?
0776デフォルトの名無しさん
2007/08/01(水) 13:55:37すいませんメモしていませんでした
コンパイルしたexeファイルを実行しました
0777デフォルトの名無しさん
2007/08/01(水) 13:59:37std::basic_string<>はマルチバイト文字対応ではない。
TCHARを使うWindowsベッタリなプログラムなら、CStringを使うのもアリだ。
CStringなら内部的に_tcs〜系の関数を使っているので、MBCSで
コンパイルした場合には正しくマルチバイト文字が処理される。
Windowsベッタリではないコードを分離したいなら、TCHARは使わず
std::wstringで書くと良いと思うが、VC++のC++ランタイムは8.0になっても
未だにlocale周りにバグを抱えているので、wchar_tを使ったプログラムは
しばしばそれを踏むことになるかもしれん。
0778デフォルトの名無しさん
2007/08/01(水) 14:22:10>>777
ありがとうございます。Javaから入ってVC++に慣れない日々が続いています。
まだ解決には至ってませんが、とても有益な情報ありがとうございました。
0779774
2007/08/01(水) 15:58:16メモリ領域の限界って決まってるんですよね?
その限界を調整する方法ってあるんですか?
0780デフォルトの名無しさん
2007/08/01(水) 16:17:050781774
2007/08/01(水) 16:19:24VC++の設定では無理ですか?
限界まで使っているように見えないので
0782デフォルトの名無しさん
2007/08/01(水) 16:41:310783デフォルトの名無しさん
2007/08/01(水) 16:46:220784デフォルトの名無しさん
2007/08/01(水) 16:48:11で出来上がったdswをVC++2005 Express Edition + Platform DSKで開き、
ビルドすると、
c:\_ernel32_dummy.cpp(7) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\_ernel32_dummy.cpp(7) : warning C4508: 'd_ActivateActCtx' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
というエラーが1行ごとに吐き出されてしまいます。
色々検索して調べてみたのですが、どうすれば直るでしょうか・・?
0785デフォルトの名無しさん
2007/08/01(水) 16:51:160786774
2007/08/01(水) 17:08:49こんな感じですが他のところも似たようなものです
ちなみにこのときは75個ほど生成しています
0787デフォルトの名無しさん
2007/08/01(水) 17:10:130788デフォルトの名無しさん
2007/08/01(水) 17:15:26なるほどと思いlistexp2で吐き出されたcppをみたところ、void指定されていませんでした。(^^;
listexportを使ってcppとdefを吐き出し、listexp2で吐き出されたプロジェクトに上書きしてから
開いてみたところ、正常にビルドできました。
本来なら新規プロジェクトでcppとdefを読み込んでdllビルドできればいいのですが、
ビルドして出来上がったdllはdllでないらしく・・・。
何はともあれ解決しそうです。ありがとうございました。
0789774
2007/08/01(水) 17:18:17自動変数の使いすぎが原因とかでしょうか?
領域が増えていってもエラーがでないようにしたいのです
スレッドが反応してそれぞれ作業していくので48000KBほどから52000KBに
増えていっても不思議じゃないのですが
メモリリークが原因かわかりませんが52000KBになってもエラーがでないように
するにはどうすればいいのでしょうか?
0790デフォルトの名無しさん
2007/08/01(水) 17:33:34とりあえず、実行し直して、メモを取り直せよ
0791デフォルトの名無しさん
2007/08/01(水) 19:21:51プロパティ→リンカ→入力→モジュール定義ファイル
にdefを指定しているか?
0792デフォルトの名無しさん
2007/08/01(水) 20:50:06ありがとうございます。できました(>_<)。
0793デフォルトの名無しさん
2007/08/02(木) 06:27:08やったじゃん! おめ!
0794デフォルトの名無しさん
2007/08/02(木) 07:10:21色々な海外サイトを回っていたらJust-In-Time デバックとの表示が度々出てきます。
ぐぐってみた所、他の方々は選択を無視出来るようなのですが、それをすると自分のブラウザは勝手に終了してしまいます。
無視せず進むとMicrosoft Visual Studioが起動しエラー表示後、逆アセンブリで〜など色々表示されるのですが理解できず苦戦しています。
現状がどうなっているのかも理解できません、なのでここに書き込みしてみました。
プログラマの方、プログラム経験者の皆様によろしければ助言など頂けると助かります。
使用OS WinXP 使用ブラウザ Sleipnir 設定などは特に変更してません。
よろしくお願いします。
0795デフォルトの名無しさん
2007/08/02(木) 07:18:090796デフォルトの名無しさん
2007/08/02(木) 07:34:270797デフォルトの名無しさん
2007/08/02(木) 10:58:26>Microsoft Visual Studioが起動し
アンインストールすればおk
0798デフォルトの名無しさん
2007/08/02(木) 21:54:26Visual Studioが入っていて、君のブラウザ(ブラウザに限らないけど)が回復できないエラーになると、そういう表示が出てくるのさ。
つまり、ブラウザのバグってこと。
特別なスキルが無い限り、『無視』でブラウザを強制終了するしかない。
解決策は>>797にするか、君のブラウザをもっとバグの少ないものに変えるべきですね。
0799デフォルトの名無しさん
2007/08/02(木) 22:17:340800デフォルトの名無しさん
2007/08/02(木) 22:23:170801デフォルトの名無しさん
2007/08/02(木) 22:39:350802デフォルトの名無しさん
2007/08/02(木) 22:52:170803デフォルトの名無しさん
2007/08/02(木) 23:50:380804デフォルトの名無しさん
2007/08/03(金) 00:03:150805デフォルトの名無しさん
2007/08/03(金) 02:29:590806デフォルトの名無しさん
2007/08/03(金) 03:23:060807774
2007/08/03(金) 15:41:09例外 unknown software exceptionというのがでました
0808デフォルトの名無しさん
2007/08/03(金) 15:44:330809デフォルトの名無しさん
2007/08/03(金) 15:57:29きちっと環境作ってデバッグしたほうがよさげ
0810デフォルトの名無しさん
2007/08/06(月) 10:21:40Visual C++本体とDirect X SDKの他に必要、重要となるものは何かありますでしょうか?
0811デフォルトの名無しさん
2007/08/06(月) 10:34:08まともな人間。
0812デフォルトの名無しさん
2007/08/06(月) 10:39:08まともな思考。
0813デフォルトの名無しさん
2007/08/06(月) 10:46:550814デフォルトの名無しさん
2007/08/06(月) 10:52:030815デフォルトの名無しさん
2007/08/06(月) 12:18:02できなかったら何か足りないと思うよ
0816810
2007/08/06(月) 12:27:530817デフォルトの名無しさん
2007/08/06(月) 16:01:040818デフォルトの名無しさん
2007/08/06(月) 16:02:440819デフォルトの名無しさん
2007/08/07(火) 01:19:44関数に入力する引数がガイドででるときと、でないときがあるけどなんで?
0820デフォルトの名無しさん
2007/08/07(火) 01:34:100821デフォルトの名無しさん
2007/08/07(火) 07:34:25Viでインテリセンス出す方法が知りたいです。
0822デフォルトの名無しさん
2007/08/07(火) 07:37:480823デフォルトの名無しさん
2007/08/07(火) 07:58:030824デフォルトの名無しさん
2007/08/07(火) 08:01:390825デフォルトの名無しさん
2007/08/07(火) 08:43:01お前は何を言っているんだ
0826デフォルトの名無しさん
2007/08/07(火) 08:49:48お前は何を言っているんだ
0827デフォルトの名無しさん
2007/08/07(火) 09:49:42おれは何を言っているんだ
0828デフォルトの名無しさん
2007/08/07(火) 15:40:32ttp://msdn.microsoft.com/msdnmag/issues/07/06/cpp/default.aspx?loc=jp
0829デフォルトの名無しさん
2007/08/07(火) 16:02:010830デフォルトの名無しさん
2007/08/07(火) 19:41:53ワーニングが大量に出てうざいんですけど、これが出力されないようにする方法ってありますか?
0831デフォルトの名無しさん
2007/08/07(火) 19:52:46なんでエラーコード書かないのか知らないが、警告消すだけなら
つ[#pragma]
0832デフォルトの名無しさん
2007/08/07(火) 19:53:10つ[#pragma warning]
0833デフォルトの名無しさん
2007/08/07(火) 20:02:47そんなんもしらんってバカじゃねぇの( ゚,_ゝ゚)
0834デフォルトの名無しさん
2007/08/07(火) 20:28:330835デフォルトの名無しさん
2007/08/07(火) 20:41:140836デフォルトの名無しさん
2007/08/07(火) 22:02:06ウォーニングなら知ってるが。
0837デフォルトの名無しさん
2007/08/07(火) 22:56:00<limits.h>をインクルードして、INT_MIN + 2以下INT_MAX - 2の値以上を入力したら、
再入力を促すようなプログラムを組んだのですが、
スルーされることがあるのはなんでですかorz
ちなみに、Cygwinで実行した時は、うまくいきました。
0838デフォルトの名無しさん
2007/08/07(火) 23:23:410839デフォルトの名無しさん
2007/08/07(火) 23:38:15まさかintで比較しているって落ち?
0840デフォルトの名無しさん
2007/08/07(火) 23:42:29どういう意味でしょう……?
もしかして、INT_MINやINT_MAXはint型じゃないんですか……?
0841デフォルトの名無しさん
2007/08/07(火) 23:45:55値チェックの直前で値をprintfして確認してみたら?
0842デフォルトの名無しさん
2007/08/07(火) 23:49:040843デフォルトの名無しさん
2007/08/07(火) 23:49:440844デフォルトの名無しさん
2007/08/07(火) 23:51:43オーバーフロー後に確認してもダメなのですか……。
つまり、こんなプログラムは無意味?
do {
printf("値:");
scanf("%d", &n);
} while (n < INT_MIN + 1 || n > INT_MAX - 1)
もし、オーバーフローを起こす前に確認できるプログラムがあれば、
教えていだだきたい所存orz
0845デフォルトの名無しさん
2007/08/07(火) 23:53:36int foo;
scanf("%d", & foo);
if (foo <= INT_MIN + 2) ...;
0846デフォルトの名無しさん
2007/08/07(火) 23:56:44入力の桁数が非常に大きかった場合にscanf()がどういう値を返すかは
完全に処理系によるみたいだな
gccなんかは、intで表現し切れなかった場合はINT_MINやINT_MAXを
返すようだから、それで判断がつくだろう
一方、VC++あたりは、何も考えずに足し算掛け算を行いオーバーフローした
結果をそのまま返すので、それではどうしようもない
0847デフォルトの名無しさん
2007/08/08(水) 00:04:12それでもいいけどさ。
0848デフォルトの名無しさん
2007/08/08(水) 00:21:04それ以上はを受け付けないようにして
コピペされちゃったら切り捨てかな
0849デフォルトの名無しさん
2007/08/08(水) 00:24:470850デフォルトの名無しさん
2007/08/08(水) 14:04:15#pragma warningで普通にできるから
0851デフォルトの名無しさん
2007/08/08(水) 14:14:120852デフォルトの名無しさん
2007/08/08(水) 17:00:380853デフォルトの名無しさん
2007/08/08(水) 17:09:59止めない=デバッグしないのなら、CtrlF5とかでデバッグ無しで実行ってやればいい
止まる関数を入れてもいいし、ブレークポイントを設定してもいいけど。
0854デフォルトの名無しさん
2007/08/08(水) 17:26:010855デフォルトの名無しさん
2007/08/08(水) 17:35:320856デフォルトの名無しさん
2007/08/08(水) 18:29:34ウィンドウ左上に入力中文字が表示されてしまいます。
これを非表示にしつつ、文字を拾う方法はありますか?
拾った文字は、DirectXによって画面に出力させています。
WindowsXP、VC++6.0です。
0857デフォルトの名無しさん
2007/08/08(水) 20:14:27DirectXのCustomUIサンプル見るといいよ。
これ以上話を続けるならDirectXスレで。
0859デフォルトの名無しさん
2007/08/10(金) 07:22:22とりあえずC++に触ってみようと思い1番簡単なプログラムをコンパイルしようとしたのですが
うまくいきません。どうすればいいのでしょうか?
Visual C++ 2005 Exp
#include <iostream>
using namespace std ;
int main()
{
cout << "Hellow World \n;
return 0;
}
あほらしい質問かもしれませんがよろしくお願いします
0860デフォルトの名無しさん
2007/08/10(金) 07:24:44えらメッセージでないの?
0861デフォルトの名無しさん
2007/08/10(金) 07:26:180862デフォルトの名無しさん
2007/08/10(金) 07:30:49それともコンパイルできたけどプログラムが一瞬で終了するとか?
0863デフォルトの名無しさん
2007/08/10(金) 07:39:06プロジェクトの設定は初期のままで弄ってないです
出るエラーは
プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。
'#include "stdafx.h"' をソースに追加しましたか?
でした
0864デフォルトの名無しさん
2007/08/10(金) 07:42:00プロジェクトの設定でプリコンパイルヘッダを使用しないにするか、
言われた通り#include "stdafx.h" をソースに追加すればいい。
0865デフォルトの名無しさん
2007/08/10(金) 07:48:07ありがとうございます。コンパイルできました!
後>>862で言われてるようにプログラムが一瞬で終了しないようにするにはどうすればいいですか?
あ〜質問がgdgdだ…次回から気をつけます…
0866デフォルトの名無しさん
2007/08/10(金) 07:50:290867デフォルトの名無しさん
2007/08/10(金) 08:05:14頑張ってみます
0868デフォルトの名無しさん
2007/08/10(金) 22:26:49この警告がほぼいつも出るのですが、なにか悪いのでしょうか?
デバッグするときは、特に問題なく動くのですが……。
0869デフォルトの名無しさん
2007/08/11(土) 00:30:58http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-061.html
にある「プロジェクトWavePlay」のサンプルプログラムを落として
Visual Studioでコンパイルしようとしたのですが,
"fatal error C1083: include ファイルを開けません。'vcl.h': No such file or directory"
というエラーが出てしまいコンパイルできません.
一応Win32コンソールアプリケーションとして新規プロジェクトを作ってみたのですが
うまくいきません...
どなたかご教授いただけませんでしょうか?
0870デフォルトの名無しさん
2007/08/11(土) 00:44:36あるのなら、プロジェクトのプロパティの中の
「追加のインクルードディレクトリ」にそこのパスを入れればOKなはず。
ただ
http://www.ne.jp/asahi/nagoya/ahomaro/builder/のタイトルが
「C++Builderのお部屋」になってるのが気になるんですが・・・
0871デフォルトの名無しさん
2007/08/11(土) 11:04:42どう見てもC++Builder専用のソースです。
ありがとうございました。
ちなみにC++Builderを知ってしまうと、その快適さ故に
以後のVC++の扱いが苦痛になるという恐ろしいシロモノです。
VC++を長く使って行きたいなら、近づかない方が身のためです。
注意しましょう。
0872デフォルトの名無しさん
2007/08/11(土) 16:17:11又、Backspaceキーもその行の文字しか消すことができず、何だか
操作がおかしくなってしまいました。何か間違ってキーを押してしまった
のだと思うのですが、わかる方いませんか?
ちなみにVisual C++上以外では通常通りに操作が出来ています。
0873デフォルトの名無しさん
2007/08/11(土) 16:24:040874デフォルトの名無しさん
2007/08/11(土) 18:24:190875872
2007/08/11(土) 18:30:060876デフォルトの名無しさん
2007/08/11(土) 20:00:380877デフォルトの名無しさん
2007/08/13(月) 04:09:24C++Builderってそんなにいいのけ。ちょっと検討してみっぺ。
0878デフォルトの名無しさん
2007/08/13(月) 04:18:41|
|
| /  ̄  ̄ \
(=) /、 ヽ
J |・ |―-、 |
q -´ 二 ヽ |
ノ_ ー | |
\. ̄` | /
O===== |
/ |
/ / |
0879デフォルトの名無しさん
2007/08/13(月) 10:19:29いつのまにか超巨大なフォントになってしまって元に戻したいのですけど。
0880デフォルトの名無しさん
2007/08/13(月) 10:51:20なんでそうなったのかは知らんが、指定はできるよ
ツールのオプションの環境のフォントおよび色で、設定の表示を自動変数ウィンドウにしてみ
0881879
2007/08/13(月) 11:41:44片っ端から選んでは「規定値を使用」を連打していったら直りました…。
0882デフォルトの名無しさん
2007/08/13(月) 18:59:58String^ a = "aaa\r\nbbb\r\nccc";
//Splitを使って文字列Stringの配列に
// "aaa", "bbb", "ccc"とさせるにはどうしたらよいのでしょうか?
VC++ 2005を使っています。
0883デフォルトの名無しさん
2007/08/13(月) 19:02:11それは最早C++とは言えなくなってしまった化け物だ。.Netスレへ逝け。
0884デフォルトの名無しさん
2007/08/13(月) 22:20:28java->C++へのコンバートで、文字列をsplitするようなメソッドを作っているのですが、
目的通りに動いてくれません。
class Stringがあったとして
String** A::split( const char* c_str, int c_str_len, char jud, int& ret_str_len )
こんな感じでポインタポインタを返そうとしています。
1度目はちゃんと動いてくれるのですが、2回目で失敗します。
このメソッド内でしているのは、細かい部分を除いてだいたいこんな感じです。
char* cpybuff = (char*)MALLOC( c_str_len + 1 );
String** pplist = new String*[ ret_str_len ]; // 必要分だけ確保します
pplist[array] = new String( c_str ); // こいつはバッファのコピーを持ちます
FREE( cpybuff );
return pplist;
呼び出し側では、
void A::main()
{
char c_line[] = { "1,2,3,4,5,6,7,8,9," };
int lenA = 0;
int lenB = 0;
str_listA = split( c_line, STRLEN( c_line ), ',', lenA );
str_listB = split( c_line, STRLEN( c_line ), ',', lenB );
}
こんなイメージです。
ポインタポインタのとらえ方が間違ってるのでしょうか?
0885デフォルトの名無しさん
2007/08/13(月) 22:30:350886デフォルトの名無しさん
2007/08/13(月) 22:31:340887デフォルトの名無しさん
2007/08/13(月) 22:35:210888884
2007/08/13(月) 22:43:22いまいちどこで質問していいか迷ったもので。。。vcでとりあえずはプログラムしてるので、アリかなと思ったんですが。
すいません。
0889884
2007/08/13(月) 22:49:32c++風に
String** array split();
みたいにしてみました。
*str[1]->equals()
ってな感じで使いたいけどうまくいかんのです。お助けを…
0890デフォルトの名無しさん
2007/08/13(月) 22:52:31std::vector<std::string> split(const std::string &s)
みたいになるだろうな
Javaの移植ってことで手抜きをするために何でもポインタに
しているのだろうけれど、GCでも使ってるの?
0891884
2007/08/13(月) 23:02:070892デフォルトの名無しさん
2007/08/13(月) 23:24:16組込みだから?
malloc()/free()ではなく、MALLOC()やFREE()を用いているね。
そのわりに、placement newではなく普通のnewを使っているようだけれども。
それと、それだとイマイチ関数の仕様がわからんな。
>>884のmain()の例で言うと、
split()の2度の呼び出しの後に、str_listA, str_listB, lenA, lenB
の中身はどうなって欲しいわけ?
0893デフォルトの名無しさん
2007/08/13(月) 23:27:36それなら、素直に文字列配列クラスを一つでっち上げた方がいいな。
0894デフォルトの名無しさん
2007/08/13(月) 23:32:30本当に1回目は動作するっていうんなら、
引用部分以外のところで領域破壊でもしてるんじゃない?
c_lineの領域自体を更新したり、c_line内のポインタをStringに保存してたりとか。
0895デフォルトの名無しさん
2007/08/13(月) 23:37:31専用のアロケータでも使わせるのかな
テンプレート使えないってことでGenericsは無しで、
Object*を保持するArrayList風のクラスを作ればいいかと
ゴミ掃除をどうするつもりか知らないがw
0896デフォルトの名無しさん
2007/08/13(月) 23:56:39ここのret_str_lenの計算が違うとか
というか、これは意味的にはsplitした文字列の数と推測すると、名前がスゴイな。
>pplist[array] = new String( c_str ); // こいつはバッファのコピーを持ちます
ここでc_strという引数文字列全体を生成しているのはなぜだとか
破壊にミスってるのでは、とか。
まあ、それだけではアレだね
0897デフォルトの名無しさん
2007/08/14(火) 00:20:23String **split(const char *s, size_t len, char delim, size_t &arraysize)
{
arraysize = 0;
for (size_t i = 0; i < len; ++i)
if (s[i] == delim)
++arraysize;
String **vec = new String*[++arraysize];
const char *p = s, *q;
int n = 0;
while (q = reinterpret_cast<const char*>(std::memchr(p, delim, len))) {
vec[n++] = new String(p, q - p);
len -= (q - p + 1);
p = q + 1;
}
vec[n] = new String(p, len);
return vec;
}
なお、ここではString に String(const char *, size_t) なコンストラクタが
あることを仮定しているが、無い場合は適当に。
std::memchr()が使えない場合も、適当に。
メモリの解放については知らね。
0898デフォルトの名無しさん
2007/08/14(火) 01:50:49VCのツールボックスみたいなコントロールバーというかダイアログバー(↓)みたいな
ものは作れるのでしょうか?
もし作れるのなら、せめてコントロール名が知りたいです。
ttp://www.prof-uis.com/FeatureTour.aspx?view=tour_toolbox_window
環境はVC2003 です。
0899デフォルトの名無しさん
2007/08/14(火) 21:08:52VC2003でVISTA用アイコン(*.ico:256*256の特大イメージ付き)を
リンクさせてビルドしたのですが、
VISTA上で、特大アイコンが表示されません。
これってVC2003をつかっているからなのでしょうか?
VC2005なら大丈夫なんでしょうか…(困)
0900デフォルトの名無しさん
2007/08/14(火) 21:36:350901デフォルトの名無しさん
2007/08/15(水) 23:47:30使用環境はVC++ 2005 WinXPHomeを使っています。
下記のようなテストクラスを作成し、
class CTest
{
public:
CTest()
{
m_pInt = new int;
*m_pInt = 10;
}
~CTest()
{
delete m_pInt;
}
int* GetInt() {return m_pInt;}
private:
int* m_pInt;
};
// 続く
0902デフォルトの名無しさん
2007/08/15(水) 23:49:08// 終了
0903デフォルトの名無しさん
2007/08/15(水) 23:49:21void CSample1Dlg::OnOK()
{
int* pTemp = NULL;
{
CTest test;
pTemp = test.GetInt();
}
TRACE(_T("Num = %d\n"), *pTemp);
}
んで、このような使用法をした場合、TRACEでは無効なポインタを参照していると思うのですが、
なぜだか、この"Num = -17891602"という結果が出力されます。
もちろん、値自体は無効なのがはっきり分かるのですが、実際にはアクセスできないメモリに行ってると思うので、
TRACEで落ちてほしいんです。どうやったら、TRACEで落ちるように(間違いに気づけるように)なるのでしょうか。
よろしくお願いします。
0904デフォルトの名無しさん
2007/08/15(水) 23:50:27/: : \ /:: !
/::::..... \--―‐'.:.:::... ! プギャーーーーーーーッ
/:::::: .::::::::::::: ',
,':::: /\ヽ_ヽv /: /\i
.i:::: √___丶 !
!:::. / / tーーー|ヽ !
|::::.. ..: | |ヽ l _,-,.、
i;::::.. | |⊂ニヽ| | ! i´ヽ い {,-ゝ.
':;::::... | | |:::T::::| ! / l ,人 __,!...!_}ゝ l
_ \:::::.... ト--^^^^^┤ / ヽ. '´ ` /
/ `ヽ `ゝ:::::........ ....../_ / ァ-- '
i::..... ;\!..-ー 、 /⌒ヽ 、\ / .:/
` '''''ー- 、::::/ ,.. . `/::: 〉‐ 、 \ \ / ..::ノ
.ソ' : /::. /:: 〉 \\,/ .:/
/i:. :,'::. /:: ./ヽ \! ..:;'
/ |:: |ヽ.:.. :'::/ \ .::/
/ !::. i::.:.:`:‐"ー、_,ノ \:::/
/ ,/ヾ;:.... /:.:.:.:.:/:::.:.. ヽ、
| :i `ー::':.:.::.:.:./\:::::.:.:. ':;
0905デフォルトの名無しさん
2007/08/15(水) 23:58:07でまぁ、デストラクタで開放した後 ポインタへNULL 代入しておけば
ぬるぽコールで落ちるのでは無かろうか。
0906デフォルトの名無しさん
2007/08/16(木) 00:47:24無効なポインタではないためではないかと
malloc や new では効率化のため、C/C++言語のランタイムがあらかじめ大きめに取得した
領域を切り出して使い、解放するときもC/C++ランタイムのバッファに戻すだけなので、
自分ではメモリを解放したつもりになっていても、OSからは無効領域に見えない。
このようなメモリの有効性確認にはC/C++ランタイムのデバッグ用サービス関数を使う。
_CrtIsValidHeapPointer あたりでググってみれ。
0907デフォルトの名無しさん
2007/08/16(木) 00:58:02ありがとうございます。
void CSample1Dlg::OnOK()
{
int* pTemp = NULL;
{
CTest test;
pTemp = test.GetInt();
}
_CrtIsValidHeapPointer(pTemp);
TRACE(_T("Num = %d\n"), *pTemp);
}
とやってみたところ、うまい事_CrtIsValidHeapPointerで落ちてくれました。
0908デフォルトの名無しさん
2007/08/16(木) 01:21:00ちょっとまて
_CrtIsValidHeapPointer はチェックするだけなので、
無効なポインタであっても FALSE を返すだけ。
通常は ASSERT マクロと一緒に使い、落とすのは ASSERT の役目。
もう一度、仕様と動作を確認した方がいいぞ。
ググって使用例とか探してみろ。
0909デフォルトの名無しさん
2007/08/16(木) 01:21:15効率化という点では、現在はOSに全てを任せるような実装になっている罠。
まあ、デバッグ時は別処理になるので、デバッグ用関数を使う点では同意。
0910デフォルトの名無しさん
2007/08/16(木) 01:34:37そうなの?
でも考えてみれば、HeapAlloc なら例としてあげた動作そのものだし、
OS側で頑張って最適化してればそれを特にラップする意味もないか。
指摘してくれてありがとう。
0911デフォルトの名無しさん
2007/08/16(木) 05:19:510912デフォルトの名無しさん
2007/08/16(木) 05:24:080913デフォルトの名無しさん
2007/08/16(木) 11:13:270914デフォルトの名無しさん
2007/08/16(木) 11:23:100915デフォルトの名無しさん
2007/08/16(木) 12:05:52あ、すいません。ASSERTは単に書き忘れただけです。そこら辺は分かってると思うので……
0916デフォルトの名無しさん
2007/08/17(金) 16:19:030917デフォルトの名無しさん
2007/08/17(金) 16:39:460918デフォルトの名無しさん
2007/08/17(金) 16:41:200919デフォルトの名無しさん
2007/08/18(土) 16:52:07保持する変数も必要でしょうか
void QIn(char c) {
Que[Q++] = c;
if (Q > QSize -1) Q = 0;
}
char QOut(void) {
char c;
c = Que[P++];
if (P >= Q) P = Q;
else if (Q > QSize-1) Q = 0;
return c;
}
0920デフォルトの名無しさん
2007/08/19(日) 08:22:410921デフォルトの名無しさん
2007/08/19(日) 10:26:22つーか、ダウンロードして試せばいいじゃん。
0922デフォルトの名無しさん
2007/08/19(日) 19:11:56どうすればいいんでしょうか?
0923デフォルトの名無しさん
2007/08/19(日) 19:13:280924デフォルトの名無しさん
2007/08/19(日) 19:17:500925デフォルトの名無しさん
2007/08/19(日) 23:02:570926デフォルトの名無しさん
2007/08/19(日) 23:12:27〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0927デフォルトの名無しさん
2007/08/19(日) 23:14:07〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にクマ
彡、 |∪| /
/ __ ヽノ /
(___) /
0928デフォルトの名無しさん
2007/08/20(月) 08:49:200929デフォルトの名無しさん
2007/08/20(月) 09:33:450930デフォルトの名無しさん
2007/08/20(月) 13:28:200931デフォルトの名無しさん
2007/08/20(月) 20:54:01ttp://journal.mycom.co.jp/column/sopinion/134/index.html
ttp://mcn.oops.jp/dev/smart.htm
0932デフォルトの名無しさん
2007/08/21(火) 01:23:02WMIのMSAcpi_ThermalZoneTemperatureまたはWin32_TemperatureProbe
ただし、BIOSにはかなり依存するみたい
0933デフォルトの名無しさん
2007/08/24(金) 19:15:41文字通り表示されてしまうのですがどうしたらいいですか?VS6でコンソールアプリケーション
にしています。
0934デフォルトの名無しさん
2007/08/24(金) 19:16:51ってOS何よ
0935デフォルトの名無しさん
2007/08/24(金) 19:27:280936デフォルトの名無しさん
2007/08/24(金) 19:28:28ttp://i2blog.matrix.jp/index.php?mode=show&UID=1101260597
0937デフォルトの名無しさん
2007/08/24(金) 19:58:58諦めろ。
NT系で32ビットプログラムがエスケープシーケンスを使えないのは仕様。
もちろん代わりの方法はあるし、その方法は後のほうの章で出てくる。
0938デフォルトの名無しさん
2007/08/24(金) 20:13:19先に進もうと思います。
ありがとうございました。
0939デフォルトの名無しさん
2007/08/24(金) 22:31:30>1.DOSプログラムの場合 -> C:\SysemRoot\System32\CONFIG.NT , AUTOEXEC.NT
>2.Windowsプログラムは -> C:\SysemRoot\System32\CONFIG.WOW , AUTOEXEC.NT
>となります。
>ですから、DOSプログラムを処理する場合には、CONFIG.NT にはNECのPC9801と違って、
>ansi.sysを組み込んでやる必要があります。
あ?なにが、ですから、だよ。何を、ですから、だ?どこから、ですから、なんだよ。頭おかしーんじゃねーの?
0940デフォルトの名無しさん
2007/08/24(金) 22:51:210941デフォルトの名無しさん
2007/08/25(土) 02:07:49お馬鹿な質問かもしれませんが、exeファイルを作成するにはどうすればいいのでしょうか?
int main(int argc, char *argv[])
↑こんな形式で作成しているので、デバッグではなく
コマンドプロントから開く必要があるのですが、実行ファイルが作られなくて……orz
0942デフォルトの名無しさん
2007/08/25(土) 02:10:390943デフォルトの名無しさん
2007/08/25(土) 02:17:240944デフォルトの名無しさん
2007/08/25(土) 02:18:060945デフォルトの名無しさん
2007/08/30(木) 09:05:260946デフォルトの名無しさん
2007/08/31(金) 14:12:500947デフォルトの名無しさん
2007/08/31(金) 14:38:330948デフォルトの名無しさん
2007/08/31(金) 15:41:530949デフォルトの名無しさん
2007/09/03(月) 02:29:20WM_DESTROYでは釣れないようなのですが。
0950デフォルトの名無しさん
2007/09/03(月) 03:53:550951デフォルトの名無しさん
2007/09/03(月) 08:14:45×ボタンクリックで閉じるには、×ボタン押せばいいんじゃない?
質問の仕方を変えてもう一度どうぞ
0952デフォルトの名無しさん
2007/09/03(月) 08:23:26アホが意味不明な言葉使うな
モーダルならEndDialog
0953デフォルトの名無しさん
2007/09/03(月) 08:43:56どんなメッセージが来るのかわからないとEndDialog をどこに書けばいいかわからないです。
0954デフォルトの名無しさん
2007/09/03(月) 08:52:49Windowing - Dialog Boxes - Dialog Boxes Overviews
- Dialog Box Programming Considerations
を一通り読んでおくことを勧める
0955デフォルトの名無しさん
2007/09/03(月) 09:00:58正解は954で良いんだけど
どういうメッセージが発生しているのかを調べるにはSpy++という開発ツールがあるから
使えるようになっておいて損は無いよ
0956デフォルトの名無しさん
2007/09/03(月) 10:03:330957デフォルトの名無しさん
2007/09/03(月) 12:12:090958デフォルトの名無しさん
2007/09/03(月) 22:01:29ヘッダーファイル一つに関数をたくさん定義して
ソースファイルいっぱ作って分割するとエラーがたくさん出ます。
ソース分割の仕方が詳しく載っているサイトってあるでしょうか。
検索してもC言語のソース分割しか無いもので…。
0959デフォルトの名無しさん
2007/09/03(月) 23:51:240960デフォルトの名無しさん
2007/09/04(火) 07:45:00お前には無理だから諦めた方がいいよ
0961デフォルトの名無しさん
2007/09/04(火) 09:15:51ソースを分割したら
error C2011: '_Game' : 'class' 型の再定義
'_Game' の宣言を確認してください
と最初のエラーに出ます。
その下にも100以上エラーが出ます。
その殆どが「定義されていない識別子です」と言う感じです。
環境はOSはXPでVC++2005の無償版です。
誰か分かる方いましたら教えて下さい。
よろしくお願いします。
0962デフォルトの名無しさん
2007/09/04(火) 10:21:150963デフォルトの名無しさん
2007/09/04(火) 10:51:38再定義してないかどうか確認してください
定義の記述が間違って無いか確認してください
0964デフォルトの名無しさん
2007/09/04(火) 20:26:36ヘッダ用のファイルを、次のようになおしましょう。
#ifndef UNKO_BAKA
class _Game
{
〜〜〜〜
};
#else
#define UNKO_BAKA
#endif
0965デフォルトの名無しさん
2007/09/04(火) 20:33:250966デフォルトの名無しさん
2007/09/04(火) 22:31:02普通はつけないんだぜ。
だからUNKO_BAKAは良い例なんだぜ。
”_Game”という識別子はお勧めしないんだぜ。
0967デフォルトの名無しさん
2007/09/04(火) 23:38:24コンパイラ・ライブラリその他処理系がどしどし使っているし、
むしろそのために予約されているのだし、
お勧めしないではなく、使ってはならない。
少なくともC/C++の規格ではそうなっている。
でもWin32APIのヘッダでも無視しているし、
VC++使っていると無視せざるを得ない状況も度々訪れる罠。
0968デフォルトの名無しさん
2007/09/04(火) 23:49:34#ifndef UNKO_BAKA
#define UNKO_BAKA
class _Game
{
〜〜〜〜
};
#endif
じゃないのか
多重インクルードガードになってねーよ
0969964
2007/09/05(水) 05:01:01ありがとうございました。
0970デフォルトの名無しさん
2007/09/05(水) 14:37:140971デフォルトの名無しさん
2007/09/05(水) 14:40:570972デフォルトの名無しさん
2007/09/05(水) 15:20:15どうでもいいのは確かだが、この数レスって結局958が発端だろ
0973デフォルトの名無しさん
2007/09/05(水) 15:24:060974デフォルトの名無しさん
2007/09/05(水) 18:09:240975デフォルトの名無しさん
2007/09/05(水) 19:19:450976デフォルトの名無しさん
2007/09/06(木) 00:36:01蚊に刺されてかゆいんだが
0977デフォルトの名無しさん
2007/09/06(木) 01:13:380978デフォルトの名無しさん
2007/09/06(木) 01:24:290979デフォルトの名無しさん
2007/09/06(木) 01:25:390980デフォルトの名無しさん
2007/09/06(木) 10:00:290981デフォルトの名無しさん
2007/09/08(土) 12:52:16タイトルを変えたくて文字列リソース(String Table)のIDR_MAINFRAMEの1つめを変えました
「ここの文字列\n〜\n〜\n〜\n〜\n〜\n」
タイトルは一応変わったのですが
アイコンとタイトルの横に「-無題」や他のマシンでは「-Untitled」がついてしまいます
この横についてくる無題等をはずしたいのですが
どうすればいいのでしょうか?
0982デフォルトの名無しさん
2007/09/08(土) 13:12:38FWS_PREFIXTITLE、FWS_ADDTOTITLE でググれ。
0983デフォルトの名無しさん
2007/09/08(土) 13:14:33あれだ、無償版ってのがいけなかったんだろうw
0984デフォルトの名無しさん
2007/09/09(日) 16:27:30一部分だけ最適化を行うことは可能でしょうか。
0985デフォルトの名無しさん
2007/09/09(日) 17:11:18#pragma optimize で
0986984
2007/09/09(日) 17:39:47optimizeでは最適化を行ったコードの一部を無効化することはできるのですが
逆はできないようです。
(アセンブリを見たり、時間を計測して確認しました)
0987デフォルトの名無しさん
2007/09/09(日) 17:46:400988デフォルトの名無しさん
2007/09/09(日) 17:48:350989984
2007/09/09(日) 18:36:47別ソースってどういうこと?って思ってたら
ソースファイル単位でコンパイルオプションの設定ができるんですね。
今回最適化したい部分もちょうどソースファイル単位なので
この方法で行こうと思います。
ありがとうございました。
>>988
多少手間がかかりそうなのでそれは避けたいところです。
0990デフォルトの名無しさん
2007/09/09(日) 20:33:400991デフォルトの名無しさん
2007/09/09(日) 21:53:49| ⊂⌒ ( ・ω・)
| `ヽ_つ ,.ヘ_ヘ
| ( )
↓ u,__っ)
0992デフォルトの名無しさん
2007/09/09(日) 21:56:35↓ | ノ ヽ/⌒) あばばばばばばばばばば
↓ /⌒) (゚) (゚) | .|
↓ / / ( _●_) ミ/ ∩―−、
↓.( ヽ |∪| / / (゚) 、_ `ヽ
↓ \ ヽノ / / ( ● (゚) |つ おちんちんびろ〜〜〜ん
↓ / / | (入__,,ノ ミ あばあばばばば
↓ | / 、 (_/ ノ
↓ | /\ \ \___ ノ゙ ─――、
↓ | / ) ) /\ _ ヽ
↓ ∪ ( \ (⌒0 /\ ヽ (_ノ
↓ \,,_) `ヽノ / 、 )O
↓ ( </ /
↓ > ( 〈
↓ (,,__(,,_ノ
0993sage
2007/09/10(月) 10:01:59どの項目を参照してよいのかが分からずに苦戦しております
唐突で申し訳ありませんが、ご教授願います。
0994デフォルトの名無しさん
2007/09/10(月) 11:01:59あまり意識したことなかったけど、確認したら確かに音鳴ってた。
ビープ音とは呼ばないと思うけど。
で、コントロールパネルからサウンドトオーディオのプロパティを開いて、
その中のサウンドの関連付けで制御できるみたい。
Microsoft Developer みたいなカテゴリがあるので、その中。
問題は、初期値だと音が割り当てられてないように見えるのに
音が鳴っていること。
環境の問題かもしれないけど、一旦、別の音を割り当ててから解除
したら鳴らなくなったよ。
0995993
2007/09/10(月) 11:19:27何とかやってみます。
0996デフォルトの名無しさん
2007/09/10(月) 11:20:360997デフォルトの名無しさん
2007/09/10(月) 12:22:58★初心者にVisual C++を教えるスレ★ Part27
http://pc11.2ch.net/test/read.cgi/tech/1189394427/l50#tag3
0998デフォルトの名無しさん
2007/09/10(月) 17:10:100999デフォルトの名無しさん
2007/09/10(月) 17:22:181000デフォルトの名無しさん
2007/09/10(月) 17:23:3110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。