[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/02 03:19 / Filesize : 168 KB / Number-of Response : 617
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれVisual C++(超初心者用)その4



1 名前:デフォルトの名無しさん [2006/11/29(水) 17:00:54 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
Visual C++使いが優しくコメントを返しますが、
お礼はVisual C++の布教と初心者の救済をお願いします。

■過去スレ
前スレ
pc8.2ch.net/test/read.cgi/tech/1150105712/
前々スレ
pc8.2ch.net/test/read.cgi/tech/1141087248/

■遠い親戚スレ
くだすれC++/CLI(初心者用)
pc8.2ch.net/test/read.cgi/tech/1142144110/l50

■関連ページ
Visual C++ Home Page
www.microsoft.com/japan/msdn/visualc/



62 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:39:16 ]
無理やり戻したところで、続きを正常に実行できる保障がどこにある。

63 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:56:59 BE:19410825-2BP(202)]
>>61
>main文に無理やり戻して次の関数を続行などできたらベストなのですが・・・

それは別のバグを仕込むだけの愚行。
まず規定の処理で正しく終了するようにしれ。

64 名前:デフォルトの名無しさん [2007/01/17(水) 14:29:56 ]
助けてください
Visual C++ 2005 Express Editionを昨日インストールした本当の超初心者なのですが
インストールはしっかりできたのですが、新しいプロジェクトを開いても、何の反応
もしない新しいプロジェクトとかかれたものしか出てきません。どうしたらよろしいですか?
教えてください、お願いします

65 名前:デフォルトの名無しさん [2007/01/17(水) 16:20:02 ]
MAME32をジョイスティックで動かすことをしたいのですが
keybd_eventをつかっても動きません
メモ帳で試してみたら、動きました

何か他の方法があるのでしょうか


66 名前:名無しさん mailto:sage [2007/01/17(水) 16:24:50 ]
>>62
続きはありません。
メインじゃないプログラムで「この文章を読み込んだら終了」
ってことになってるんですが、終了させる方法が分かりません。
プログラムが少しできる人に付き添って貰ってreturn;ってのを付けて行ったんですが
だめでした。
>>63
初期化の関数が別にあります。
return;を付けていってもダメなのでmain文に何とか戻す方法は無いか困ってます



67 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 18:07:07 ]
>>66
Cを知らないのにソースをいじろうってのが根本的に間違ってます。

68 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 18:25:00 ]
>>66
ソースうpすれば訂正してあげるよ

69 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 18:58:39 ]
まあ試しにsetjmp/longjmpを試すのも面白いかもw

70 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 19:01:45 ]
>>64
意味がわからん、新規作成じゃだめなのか



71 名前:名無しさん mailto:sage [2007/01/17(水) 19:01:58 ]
>>67
Cは約半年程授業で習ったのですが、C++は初めて触るような感じです
素人に毛が生えた程度なので超初心者用とタイトルのあるここに書き込みしました
>>68
このプログラム自体は卒業した先輩の卒論ですので、
アップロードのような行為はできないです
サイズとしても26.2Mあります。

このプログラムを使って工場のようなものを擬似的に再現して実験するのですが
実験後、待ち状態のまま終了しないことが分かり弄らされてます。

72 名前:デフォルトの名無しさん [2007/01/17(水) 19:09:16 ]
#include <iostream>
using namespace std;

int main(void)
{
unsigned char x,y;

cout << "2つの値を入力してください。\n";

cin >> x >> y;

x -= '0';
y -= '0';

int a = x + y;
int b = x * y;

printf("x = %d, y = %d, x + y = %d, x * y = %d",x,y,a,b);

return 0;
}

これで出力したら10以上の数値が出ないんですが、
どうしたら出るようになるか教えてください。

73 名前:デフォルトの名無しさん [2007/01/17(水) 19:26:55 ]
>>70様 新規作成したあと新しいプロジェクトとでて、どのボタン押してもフーリズ
したままです

74 名前:デフォルトの名無しさん [2007/01/17(水) 20:11:04 ]
Visual Studio 2005でC++のMFCでダイアログベースのアプリを作っているのですが、
C○○DlgクラスのメソッドでgetParent()を使うとNULLが返ってきます。
getWindow(GW_OWNER)も試しましたがNULLが返ってきました。
どんな原因が考えられますか?

やりたい事はCProgressCtrl::Create()なのですが、これの引数に親ウィンドウのポインタが必要になります。
アプリ内で子ウィンドウを立ち上げる事はしていないのですが、
この場合親ウィンドウが無いのでそのせいでしょうか?

75 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:03:36 ]
>>74
そりゃCreateしないとウィンドウは存在しないべ

76 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:08:25 ]
>>73
新しいプロジェクトってどこにでるの?
通常は、ファイル-新規作成-プロジェクトでWin32を選べば
Win32コンソールアプリケーションが出ると思うけど。

77 名前:73 [2007/01/17(水) 21:31:09 ]
>>76様 ありがとうございます
Win32っていう選択肢もでてこないんです。ファイルに新規作成という言葉がなくて
類似する言葉は新しいプロジェクトぐらいしかありません。その新しいプロジェクト
のなかにはテンプレート、プロジェクトという項目があります。

お手数おかけしますが、どうぞおねがいします



78 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:31:22 ]
>>74
親ってCProgressCtrlの親だから、DlgからCreateするならthisポインタでOK

79 名前:74 mailto:sage [2007/01/17(水) 21:32:29 ]
>>78
thisポインタも試したのですが、
ビルドは通ってもランタイムに不正落ちします。

どんな原因が考えられるでしょうか?

80 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:33:47 ]
コード見ないと分からない。



81 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:34:15 ]
>>79
どこでCreateしてるのだ
ダイアログのOnCreate以降じゃないとだめだぜ?

82 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:36:51 ]
>>77
デフォルトのテンプレートがインストールできてないのかな?
インストールしなおしてみては

83 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:41:53 ]
Express EditionってなんかファイルをいじらないとWin32のプロジェクトが出てこないとか言うことはなかったっけ?

84 名前:73 [2007/01/17(水) 21:46:21 ]
>>82様 ありがとうございます。やってみます。


85 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 22:51:09 ]
久々にVC++インスコしてみたら書式が変わってるんですがこれはいったい何事ですか?
なんかすべての処理がヘッダファイルに書かれていてcppの方はヘッタファイルのインクルードしかないんですけど・・・
マネージコード、アンマネージコードとかいうヤツのせい?
それとも.NETとかいうヤツから変わったの?

86 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 23:01:09 ]
>>83
MSのサイトにそういうのあったようなきがす。
PlatformSDKあたりに。

87 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 23:21:53 ]
>>85
ウィザードの種類によっては、cppファイルの生成とかいうオプションがあったと思うよ。

88 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 02:54:45 ]
>>87
だから、それで生成したcppファイルが・・

89 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 03:08:11 ]
よーわからん、クラスのプロパティ出してメッセージ選ぶとハンドラが作成される。

ってそういう話でまくて?

90 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 06:36:05 ]
どーせVC++がVC#っぽくなってるってことだろう



91 名前:73 [2007/01/18(木) 17:11:06 ]
たびたびすいません、>>82様のいうとおりやったのですが、document and settingなどと書かれたものが 有効な
win32アプリケーションではありませんとでました。
どうしたらよろしいですか?市販のVisual C++ 2005 Express Editionを買えば
できるでしょうか?

92 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 19:39:13 ]
>>91
ログ読まずにいきなり回答してみる
こういうことで合ってる?
ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/

93 名前:73 [2007/01/19(金) 12:57:22 ]
>>92様どんレスですいません、ありがとうございます
やってみます

94 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:02:17 ]
エディットボックスに入力した日本語を、ボタンを押すとtestという
関数に取り込みたいのですが下のようにしてみたんですがうまくいきません。
どのように変更すれば取り込めるのか教えていただけないでしょうか?
よろしくお願いします。

char ss;
m_edit.GetWindowText(ss);

void test(char *ss)
{
while(*ss != '\0'){
・・・・処理・・・
ss++;
}
}

95 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:21:15 ]
何がどううまくいかないのか説明しろ。話はそれからだ。

96 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:45:46 BE:23292162-2BP(222)]
>char ss;
>m_edit.GetWindowText(ss);

コンパイル通らん。

97 名前:94 mailto:sage [2007/01/19(金) 16:38:11 ]
すいませんchar ss;じゃなくて、CString ss;でした。
エディットボックスにコントロール変数m_editをつくって、
ssに取り込んで、そのデータをtestにとりこんで処理をしたいと考えています。
*ssでよめるようにするには、エディットボックスからどのようにとればいいの
かわかりません。よろしくお願いします。

98 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:59:42 ]
void test(LPCTSTR ss)で受け取る

99 名前:デフォルトの名無しさん [2007/01/20(土) 16:26:02 ]
MFCのダイアログベースのプログラムからスレッドを生成した場合、
生成した子スレッドに対してダイアログの方は親スレッドと考えて良いのでしょうか?
つまりスレッドの識別子などがあるのでしょうか?

100 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 19:58:56 ]
スレッド間に親子関係は無い。
ライブラリの初期化・終了処理を考慮しなければ、全て同等。
スレッドの識別子は両方にある。



101 名前:デフォルトの名無しさん [2007/01/20(土) 21:38:38 ]
ifの条件が増えたとき、下のどちらの記載が望ましいのでしょうか?

if ( (条件1)&&(条件2)&&(条件3)&&(条件4)&&(条件5)&&(条件6) ){
 ;
}

if ( (条件1)&&(条件2) ){
 if ( (条件3)&&(条件4) ){
  if ( (条件5)&&(条件6) ){
   ;
  }
 }
}

102 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 21:45:22 ]
>>101
スレ違い

103 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 21:51:11 ]
>>101
関数化しろ

104 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 23:24:15 ]
>>101
どっちでもいいけど自分なら前者で書くかな。
条件部分が長すぎて画面からはみ出るなら適度に改行したり。
if((条件1)&&(条件2)&&
(条件3)&&(条件4)&&
(条件5)&&(条件6)){
;
}

105 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:55:25 ]
>>100
返信ありがとうございます。

では、生成されたスレッドからダイアログの方へメッセージを投げたい場合は
どうすればいいのでしょうか?
スレッドを生成する際に引数としてダイアログのスレッドIDを渡す、など必要になるのでしょうか?

106 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 19:48:13 ]
ダイアログなんだからウィンドウハンドルでも渡しておけばいいのでは?

107 名前:101 mailto:sage [2007/01/21(日) 20:41:18 ]
>>103-104
トンクス
ifを分割すれば余分な条件を弾けて得かなって思ったので質問しました。
クラス内で関数化するのが一般的かもしれませんが、
if() の括弧の中を全て#defineに入れてみようと思います。



108 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 21:25:49 ]
スレ違い

109 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:24:17 ]
実行ファイルにjpgなどを格納することはできますか?
使用しているのはVC++.net2003です。

110 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:34:54 ]
>>107
>103



111 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:36:46 ]
>>109
できます。この板のどこかのスレでそんな話題を見かけました。

112 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:36:56 ]
fgets や std::getline を使わずにテキストファイルからデータを一行ずつ読み込みたいのですが、
ReadFile で改行文字か EOF が来るまで1バイトずつ読み込んでバッファに取り込むという方法しか
思いつきません。もっといい方法ってありますか?
ReadFile でファイルを全部読み込んでから、一行毎に分解するという方法は出来れば避けたいです。

扱いたいのは200万行以上あるファイルです。
いまだにVC6

113 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:54:39 ]
>もっといい方法ってありますか?

あなたにとって、どういうものが良いものなのか説明してください。

114 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:11:46 ]
>>112
素直にfgets()やstd::getline()を使うことにするのが、「もっといい方法」だと思います。

115 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:34:12 ]
ならメモリマップトファイルはどうだ。

116 名前:112 mailto:sage [2007/01/22(月) 19:16:40 ]
回答ありがとうございます。

>>113-114
std::getline() でやってたのですが、処理に時間が掛かるのでどうにかならないかなと思いました。
根拠はありませんが、 API で同様の機能が提供されていればもっと効率よく出来そうだとも思ったのですが
どうやら無さそうですね。
素直に std::getline() のままで処理内容を見直すことにします。

>>115
CreateFileMapping() とMapViewOfFile() でファイルをメモリ空間にマップできるんですね。
これはこれで面白そうなので別件で試してみようと思います。

117 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 19:41:58 ]
全部読む必要があれば結局同じことだけどな

118 名前:名無しさん(66) mailto:sage [2007/01/22(月) 21:27:44 ]
待ち状態のまま終わらないプログラムの
int nRet = WaitForMultipleObjects(NUM_OF_THREADS, hThread, TRUE, INFINITE);

このWaitForMultipleObjectsを終了させるか、
INFINITEYのまま何かを読み込んだらタイムアウト、
のような動作はできるものなのでしょうか?

>>69さんのsetjmp/longjmpを使ってみたのですが、
WaitForMultipleObjectsの後ろにジャンプすると、何故か
ジャンプした後にプログラムが勝手に終了してしまいます。

119 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:38:05 ]
WaitForMultipleObjectsExとQueueUserAPCという手がなくはないが、
なんかお前がいきあたりばったりで使いそうで嫌だ。

120 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:52:50 ]
>>118
スレッドのいずれかが終了すればWaitFor....から制御が返る。
戻り値から終了したスレッドを特定できるので、それ以外のスレッドを終了させればOK。

66でreturnしても駄目だったと書いてるけど、何が駄目だったのか不明。



121 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:55:27 ]
あ、第3パラメタTRUEか。120じゃだめです。


122 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:57:12 ]
FALSEにして120すれば良い気もする

123 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:25:46 ]
でも結局>>67なんだよな……。

124 名前:デフォルトの名無しさん [2007/01/23(火) 01:05:12 ]
Visual C++ 2005 Expressエディションでまずは Hello Worldからと思い
新規プロジェクトでCLRコンソールアプリケーションを選びました。
そうしたら、もうビルドするだけになってるんですね。
まぁこれはいいんですが、このときこんな感じで自動生成されたんですが、

--
#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
  Console::WriteLine(L"Hello World");
  return 0;
}
--
ここで
int main(array<System::String ^> ^args)
の部分の意味がさっぱりわかりません。
多分引数を受け取る?配列?な気がしますが、良く分かりません。

C言語でやったように
int main( int argc , char *argv[] )
パラメタを処理できることが出来るのは判ったのですが、やっぱり
int main(array<System::String ^> ^args)
の意味と具体的なパラメタの処理方法が知りたいです。

よろしくお願いします。

125 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:28:37 ]
>>124
くだすれC++/CLI(初心者用)
pc10.2ch.net/test/read.cgi/tech/1142144110/l50

普通のがよければWin32コンソールアプリを選べ

126 名前:デフォルトの名無しさん [2007/01/23(火) 01:37:22 ]
>>125
Visual Studio にインストールされたテンプレートってのが表示されて
その中に Win32コンソールアプリってのはありません
あるのは
クラスライブラリ    CLRコンソールアプリケーション
空のCLRプロジェクト Windowsフォームアプリケーション

の4つだけです。

それと知りたいのは、
int main(array<System::String ^> ^args)
の意味するところです。

できれば解説願えませんでしょうか?

あっ、くだすれC++/CLI(初心者用)で聞くべき質問ってことですか?
すみません、良く分かってなくて。

127 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:47:31 ]
MSDN読めよ、糞が。

とか言いたくなっちゃうから、きちんとマニュアルは読もうな。
C++/CLIで探せばすぐ判るから。

128 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:13:59 ]
MSは初心者にはC#やVBを推奨してるから
VCは使いにくい面があるかもしれない。
特に目的が決まってないならC#やVBをお勧めする。

129 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:33:31 ]
PlatformSDK入れてMSDNの該当ページ(>>92)に従え

130 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 21:23:48 ]
>>126
そりゃ左でCLRを選んでるからだろ
Win32選んでみな



131 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 15:29:36 ]
Visual C++だとstring型のハンドルがありますが、
C++のstringは使えないでしょうか?
Visual C++はC++の拡張と聞きましたが、C++が分かっていても、
Visual C++はほとんど一から型とかライブラリの使い方を勉強する必要が
あるのでしょうか?


132 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 22:08:59 ]
使いたければ使えばいい。

133 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 23:02:30 ]
組み込み型じゃないからな

134 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:00:37 ]
VC++.NET2002で質問です。
MFCアプリケーション上でダイアログボックスを作って、
DoModal()でモーダルダイアログボックスを表示してます。
ところが、そのダイアログボックスのOnInitDialog()内で
メッセージボックスAfxMessageBox( "HogeHoge");を表示すると
OKで閉じた後、なぜかモードレスダイアログになってしまいます。
(ダイアログ表示中でも親ウィンドウが操作できてしまう。)
これってこういう仕様なのでしょうか?


135 名前:質問者A mailto:sage [2007/01/25(木) 09:21:22 ]
Visual Studio C++ Express Edition使っています。
初めてwindowsプログラムします。
猫でもわかるプログラミングのWindowsSDK編第1部の
イントロダクションのsample01.cppをビルドしたんですが、
エラーが出てしまいます。

★プロジェクトの作成方法
[ファイル]-[新規作成]-[プロジェクト]
[新しいプロジェクト]ダイアログで
[プロジェクトの種類]→Win32
[テンプレート]→Win32コンソールアプリケーション
と選択して、
プロジェクト名(lesson)を入力して
[OK]をクリック。

[Win32アプリケーションウィザード]
で、
[アプリケーションの種類]→Windowsアプリケーションにチェック
[追加オプション]
で、
[空のプロジェクト]→チェックせず(デフォルト)
[プリコンパイル済みヘッダー]→チェック(デフォルト)
で、[完了]ボタンを押しました。

136 名前:質問者A mailto:sage [2007/01/25(木) 09:21:54 ]
あらかじめ用意された↓をビルドすると正常終了します。

//lesson.cpp
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

137 名前:質問者A mailto:sage [2007/01/25(木) 09:22:33 ]
★プログラムの変更

これを猫でもわかるに変えたいんですけど、
関数名が@とAで違うので、
Aの関数名だけ@の名前(_tmain)に変えて
実行しました。

@↑
int _tmain(int argc, _TCHAR* argv[])

A猫でもわかるのサンプル
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,
LPSTR lpszCmdLine, int nCmdShow)





138 名前:質問者A mailto:sage [2007/01/25(木) 09:24:23 ]
すると、↓のようなエラーが出てしまいました。

★エラー内容
lesson.cpp
d:\lesson\lesson\lesson.cpp(24) : error C2440: '=' : 'HGDIOBJ' から 'HBRUSH' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
d:\lesson\lesson\lesson.cpp(26) : error C2440: '=' : 'char [25]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
d:\lesson\lesson\lesson.cpp(40) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
d:\lesson\lesson\lesson.cpp(47) : warning C4244: 'return' : 'WPARAM' から 'int' への変換です。データが失われる可能性があります。
ビルドログは "file://d:\lesson\lesson\Debug\BuildLog.htm" に保存されました。
lesson - エラー 3、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

プロジェクトの作成の仕方が悪いのでしょうか?
教えてください。

139 名前:質問者A mailto:sage [2007/01/25(木) 09:27:11 ]
変更後のプログラムです。(長いので分割して書きます。すみません)
#include "stdafx.h"
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char szClassNme[] = "ウィンドウクラス・ネーム";



140 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 09:51:35 ]
www.kumei.ne.jp/c_lang/

ここの2005と書いてある部分を参照



141 名前:質問者A: mailto:sage [2007/01/25(木) 10:09:30 ]
(「連続投稿です」と言われて書き込みが途中で止まっていました)

>>140
ありがとうございます。気付きませんでした。
[VS2005の設定方法]見ました。
>次に、Win32APIを利用したWindowsアプリケーションの設定です。
>「新しいプロジェクト」では、プロジェクトの種類を「Visual C++」、テンプレートを「Win32 プロジェクト」にします。
私の環境だと「Win32 プロジェクト」がありません。
「Win32コンソールアプリケーション 」のみです。
(これってVC++2005のExpressだと無理ということでしょうか?)
とりあえず「Win32コンソールアプリケーション 」として
残りはサイトに書かれている通り、
「アプリケーションウィザード」で、
アプリケーションの種類を「Windowsアプリケーション」
追加のオプションを「空のプロジェクト」
にしました。
しかし、>>138 と同じエラーがでてしまいました。


142 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 10:58:36 ]
>>141
プロジェクトのプロパティの「全般」に文字コードの指定があるからMBCSに変更。
24行と47行のは明示的にキャストしとけ。

にしても、初心者が見る箇所に
Win16を引き摺ってるようなコードを放置してあるのは良くないな。

143 名前:質問者A: mailto:sage [2007/01/25(木) 11:19:00 ]
>>142
>プロジェクトのプロパティの「全般」に文字コードの指定があるからMBCSに変更。
できました!ありがとうございます。


144 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:28:52 ]
OS:WindowsXP SP2
環境:VS2005 MFC使用
教えていただきたいことがあります
イミディエイトウィンドウにメモリリーク時の情報が表示されますが、発生したファイル名
を表示したいのですがどのようにしたらよいのでしょうか?
MFCでは標準でDEBUG_NEWが定義されており、これでファイル名も表示されるという情報を
ネットでよく見かけるのです。この情報に間違いがなければデフォルトで表示されるはずなのですが・・。

今のアウトプットウィンドウの表示
Detected memory leaks!
Dumping objects ->
{15027} normal block at 0x01322E30, 346 bytes long.
Data: <5 9 9 9 E Q> 35 00 39 00 39 00 39 00 00 00 45 00 00 00 E6 51
Object dump complete.

おそらくこうなるであろうファイル名付属のアウトプットウィンドウの表示
Dumping objects ->
C:\MyProjects\TestProt\Test.cpp(17) :
{16} normal block at 0x00780EC0, 4 bytes long.
Data: < > CD CD CD CD
Object dump complete.

よろしくお願いいたします。

145 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:49:44 ]
その質問に答えようと思ったら
適当なプロジェクト作ってわざとメモリリークさせて結果を見てみるだけだから
自分でやってみればいい

146 名前:144 mailto:sage [2007/01/25(木) 14:04:43 ]
>>145
ためしに新規のプロジェクトを作成し、ってわざとメモリリークさせてみたところ、
ファイル名が表示されていました。
DLL参照したり、ソースファイルとプロジェクトのディレクトリを別々にしたりしてるんで
それが原因なのでしょうか?

147 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 17:13:19 ]
>>135
猫でもわかるなら、VS2005サンプルプログラムのところも見てみろよ。

148 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:16:50 ]
>>147は死ね
このスレは「くだすれVisual C++(超初心者用)その4」だぞ
馬鹿か貴様

149 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:18:56 ]
>>135
そのコードのURL書いてみて

150 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:32:31 ]
超初心者には147程度の記述では不親切だったか?



151 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:40:35 ]
135の件は142の答えで解決済み。

152 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:15:33 ]
Visualstudio.NET2003使ってる者ですが
プロジェクトを作って 新しい項目の追加を選択して
a.cとか適当名前いれて
ソースファイルに何も書き込まずに
デバッグ無しで開始を選択すると
エラーが発生して デバッグを開始出来ません 
指定されたファイルが見つかりませんのウインドウと
error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 _WinMainCRTStartup で参照されました。
fatal error LNK1120: 外部参照 1 が未解決です。
とでます。
どうしたらよいのでしょうか・・
さっぱり見当が付かないんですが。



153 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:33:04 ]
main(wmain/_tmain)関数から始まるプログラムを書きたければ、Win32コンソールプロジェクトを作れ。
そうでなければWinMain(wWinMain/_tWinMain)関数を書け。

154 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:55:53 ]
プログラム以前のレベルですが2点教えてください。

10年近く前までC(++ではない)やってた者ですが、
突然ゲーム作りがしたくなりまして
一から勉強し直しのつもりでVisual C++を買おうと思ってるんです。
でも何を買ったらいいのかさっぱり判りません!

1.VC++.NET2003ってStandard版しかないのですか?
Professionalとか、上位版が出ていたりするのですか?

2.VC++.NET2003って今でも店頭で入手できるんでしょうか?
2005を買ってダウングレード、みたいな方法もできるのですか?
その場合には2005のどれを買えばいいのですか?

とりあえずDirectX関連の本を買って読んでるんですが
その本がC++.NET2003までしか対応していないのです。
↓漏れが買った本
ttp://www.kohgakusha.co.jp/books/detail/978-4-7775-1043-6

155 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:06:33 ]
>>154
2003を買う必要は全くありません。
2055EEを入手するか、それで飽き足らなければ2005PRO辺りを買えば宜しいかと。

156 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:13:21 ]
2005EEはフリーだよ

157 名前:154 mailto:sage [2007/01/28(日) 15:31:30 ]
>>155-156
ありがとう

あえて2003を買おうとしているのには訳があって
この本にソースとかプロジェクトファイル?が収録した
CD-ROMが付属してあるわけですが、
2003用のファイルを2005の環境で開いたら、
何かと細かいエラーとか警告とか、いろいろ出てきそうな
気がするんです。(問題ない?)

いちばん恐れているのは、2005の環境で変なエラーがいっぱい出て、
それを直すためにコンパイラの設定とかソースの修正とか
いろいろ見直してるうちに結局ワケわかんなくなっちゃって、
しかもそれでもなお直らず、本当に勉強したい部分にまったく
触れられないまま、挫折してしまうことです。

・・・すいません、実はVC6の頃に一度これで挫折してるんですorz

とりあえず2003の環境なら、あまり深く考えずに
本に書いてある通り操作したら、一通りサンプルもうまく動いて
勉強に専念できそう、と考えたんです。
本読んでて、昔と今じゃあ技術が全然違う事だけはよくわかったので、
初心に帰ってがんばろうと思ってます
長文スマソ

158 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:35:56 ]
10年近く前までCをやっていたと言い張る人間にしては、随分と情けない話だ。

159 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:55:02 ]
古本屋で買って来たVC1の本でもほとんど同じだったよ
昔の方が機能が少なくてわかりやすいという点もあるけど

160 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:32:23 ]
途中で挫折するのは基本ができてないくせに応用したがるからじゃまいか



161 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 11:13:42 ]
そういうこと。
順調に進歩する人と
いつまでたっても進歩しない人と
途中で投げ出す人を見てきたが、
性格というか気分というか、
そういうが現れてるような気がした。

162 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:21:12 ]
>>157
まあVC++ 2005はセキュリティ関連で色々と細かい警告を出すようになったが、それは有名だしググれば対処法はすぐ見つかる。
その程度のプログラムならそのほかには、特にVC++ 2005に持っていったからといってエラーになるということはないと思う。
せいぜいSDKを入れていない、入れたけどVC++で設定し忘れることに気を付けろというくらいかな。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<168KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef