★初心者にVisual C++を教えるスレ★ Part28at TECH
★初心者にVisual C++を教えるスレ★ Part28 - 暇つぶし2ch39:デフォルトの名無しさん
07/12/02 00:49:31
>>37さん、ググってみました。
なるほど、windowsAPIの中に画像を表示する関数があるのですね。
いやーこういう便利なものがあるのですね。
ありがとうございます。早速書籍やネットをあさってみます。
>>38さん、この更新版に画像を表示するような機能が含まれている
ということでしょうか?取り合えず確認してみます。
教えて下さってありがとうございます。
しかし、こんな素早く助かる返事が頂けるとは本当に感謝感激です。
2ちゃんでの質問はドキドキしますから、中々聞けませんでしたが、
もっと早く聞いておけばよかったと思っています。
いや本当に助かりました。お二方ありがとうございました。


40:デフォルトの名無しさん
07/12/02 00:51:34
>>39
38はWindows API(とその他諸々)のリファレンス。
単なる膨大なヘルプファイルの塊。

41:デフォルトの名無しさん
07/12/02 01:13:47
>>40さん、なるほど、Windows APIなどのヘルプでしたか。
それは自分にとって役に立ちます。
わざわざ教えていただきありがとうございます。
いやーこんなにいい所だったとは。助かりました。

42:デフォルトの名無しさん
07/12/02 18:31:28
VC++6.0で特定のファイルだけコンパイルオプションを変更したいのですがどのようにすれば出来るでしょうか。
具体的には特定のファイルだけ/GZオプションを外したいのですが。
プロジェクトの設定で目的のファイルを選択しC/C++のタブを選択すると出来そうですが
/GZオプションを外す設定は無さげな感じ。

43:デフォルトの名無しさん
07/12/02 18:54:40
特定のファイルだけコンパイルすればいい

44:デフォルトの名無しさん
07/12/02 19:21:43
VC++でダイアログベースのアプリケーションを作ってます。

自動作成されたアプリケーションクラスとダイアログクラスがあり、
ダイアログクラスのOnpaintの中でアプリケーションクラスのメンバ変数を
呼ぼうとするのですが(theApp.m_a = 1;のような感じで)
ビルドするとこういうメッセージが表示されます。
「error C2248:'~~(自分が作ろうとしてるアプリクラス)::m_a':
protectedメンバ(クラス'~~'で宣言されている)にアクセスできません。

何度見てもm_aはPublicになっています。
どうすればよいのでしょうか?

45:デフォルトの名無しさん
07/12/02 19:31:48
Visual C++ 2005 Express Editionを使ってC言語をコンパイルするには どうすればよろしいでしょうか?

46:デフォルトの名無しさん
07/12/02 19:49:34
>>45
F5キーを押す

47:デフォルトの名無しさん
07/12/02 19:53:40
たとえば expat などのライブラリですでに Windows 向けに
ビルドされているものをダウンロードすると、特に
どのバージョンの Visual C++ で使えるとは指定されておらず、
vc7, vc8, vc9 のどれからでもリンクできるようなのですが、
自分が以前 vc7 でビルドしたスタティックライブラリを
vc8 や vc9 で作成中のアプリケーションからビルドしようとすると
リンカに怒られます。

この違いはどこから来ているのでしょうか?
C++における型を含んだ名前の変換の仕方の違いとかでしょうか?

48:デフォルトの名無しさん
07/12/02 21:42:03
お前がビルドしたのは、VC++7のライブラリをリンクする指定が組み込まれていて、
ほかの誰かがビルドしたのはその指定が組み込まれていないということではないだろうか。

/Zl使ってみろ。

49:デフォルトの名無しさん
07/12/02 21:46:38
先生!C++的にはVC2008って何が変わったのでしょうか?
前回は標準準拠度が飛躍的にあがってたりしましたが

50:デフォルトの名無しさん
07/12/02 22:16:00
vc6.0++使用してます。リンクを指定するのはどのように
すればいいのでしょうか?

51:デフォルトの名無しさん
07/12/02 22:19:11
>47
DLLをリンクするためのライブラリというオチでは?

52:デフォルトの名無しさん
07/12/02 23:17:46
>>49
IntelliSense が賢くなった。

53:デフォルトの名無しさん
07/12/02 23:34:17
2003toolkid以降のコンパイラでドスで使えるやつありますか

54:デフォルトの名無しさん
07/12/02 23:47:33
ない。
でも、Win32のコンソールアプリケーションを動かせるっていう
HX DOS Extenderならどうだろう?
やってみたことないけど。

55:44
07/12/02 23:54:56
自己解決しました。
m_aはクラスビュー右クリックで出るダイアログからプルダウンでPublicとか
選択して変数名入れて追加しており、追加後にクラスビューに表示されたm_aを
右クリックしてプロパティ見てもPublicになっていました。


クラスの宣言部は以下のような感じで最初二つ目の「public:」が無い状態だったのを
なんとなく追加して見たら通りました。

class CnethackApp : public CWinApp
{
public:
CnethackApp();

// オーバーライド
public:
virtual BOOL InitInstance();

// 実装

DECLARE_MESSAGE_MAP()
// メインスクリーンクラス
public:
int m_a;
};

酷いですね。クラスビューというか.NETの開発環境って嘘付くんですね・・・。

56:デフォルトの名無しさん
07/12/02 23:58:51
(pgr
AFXWIN.h:
>#define DECLARE_MESSAGE_MAP() \
>private: \
> static const AFX_MSGMAP_ENTRY _messageEntries[]; \
>protected: \
> static AFX_DATA const AFX_MSGMAP messageMap; \
> static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \
> virtual const AFX_MSGMAP* GetMessageMap() const; \

57:デフォルトの名無しさん
07/12/03 02:37:09
windows.hの中に所謂 区切り文字で分割する関数というのはあるのですか?

58:デフォルトの名無しさん
07/12/03 19:40:34
>>57
strtokのこと?
これでいいならwindows.hじゃなくてstring.h

59:デフォルトの名無しさん
07/12/03 21:35:29
VS2005ですが、ビルド時にpdbファイルを出力しないようにするには、どうすればいいでしょうか?

60:デフォルトの名無しさん
07/12/03 22:52:01
それデバッグ用のファイルだから

61:デフォルトの名無しさん
07/12/03 23:12:19
>>59
ビルドルールの設定で、最後に削除しておいたら?

62:デフォルトの名無しさん
07/12/04 00:09:05
releaseでコンパイルするとかでいいんじゃね?
何のためにそのファイルが出力されてるか絶対、調べてすらいないよな。

63:57
07/12/04 02:14:38
>57
VisualC++の中で使いたいのですが、
windows.h以外にそのstring.hをインクルードして
プログラムの中のある部分でstrtokを使うというのは一般的なんですか?

64:デフォルトの名無しさん
07/12/04 02:21:17
>>63
一般的云々というより、string.hはC標準。windows.hは非標準。
むしろwindows.hのほうが一般的ではない。

65:デフォルトの名無しさん
07/12/04 03:35:49
Loadbitmapを使ってBITMAPを読み込みたいのですが
WM_CREATE中のLPARAMからモジュールのハンドルが取れるということで試してみましたが成功しません
対象のBITMAPはリソーススクリプトに記述してあります

static HBITMAP hBitmap;

WM_CREATE中

hBitmap = LoadBitmap(
((LPCREATESTRUCT)lParam)->hInstance ,
TEXT("IDB_BITMAP1"));



66:デフォルトの名無しさん
07/12/04 09:10:04
Loadbitmapを使ってBITMAPを読み込みたいのか?
WM_CREATE中のLPARAMからモジュールのハンドルが取れるのを試したいのか?

Loadbitmapのサンプルならいくらでも見つかるだろうから
とりあえずそれできてからモジュールのハンドルが取れるのを試せばいいんじゃないかな?

67:デフォルトの名無しさん
07/12/04 14:47:20
普通に作ると IDB_BITMAP1 は数字で定義されてる可能性が高いな

68:デフォルトの名無しさん
07/12/04 15:00:45
C++から入ったんですが、ある程度のレベルまで到達したら
Cもやったほうがいいんでしょうか?
(何度も出てるネタかもしれませんが・・・)

69:デフォルトの名無しさん
07/12/04 15:53:03
C++で出来ることはCやる必要なし

70:68
07/12/04 16:46:46
>>69
そーですよね
Cオンリーな環境なんて普通の人は出会うことないし

71:デフォルトの名無しさん
07/12/05 09:06:56
そこで cfont ですよ。

72:デフォルトの名無しさん
07/12/05 11:04:02
>>71
しーふぉんと?なにそれ。

73:デフォルトの名無しさん
07/12/05 11:38:50
cfront daro

74:デフォルトの名無しさん
07/12/05 12:35:48
MFCで、特に不憫なく使っています。
SDKへ移行するメリット等はありますか?

75:デフォルトの名無しさん
07/12/05 13:09:08
MFCも中味は同じ
自分でやるか人が書いたのを使うかの違いだけ

76:74
07/12/05 14:14:46
ありがとうございました。
あえて移行する必要は、特にないという事ですね。

77:デフォルトの名無しさん
07/12/05 15:35:23
DirectInputを使用してマウスの右シングルクリックのみを無効化するツールを探しているor自作しようとしているんですが
作るとしたらどのくらいの工数がかかるでしょうか?

78:デフォルトの名無しさん
07/12/05 15:39:57
>>77
慣れた人間なら数分。予備知識がないなら永遠。

79:デフォルトの名無しさん
07/12/05 15:49:49
>>78
ありがとうございます、調べて作ってみます

80:デフォルトの名無しさん
07/12/05 22:36:40
DoModalする前にダイアログの位置をあらかじめ決めて、DoModalしたときにその位置に表示するようなことってできますか?
やり方も簡単におしえてください

81:デフォルトの名無しさん
07/12/05 23:07:48
OnInitDialog でがんばれ

82:デフォルトの名無しさん
07/12/05 23:08:40
DoModalってことはMFC?
OnInitDialogでMoveWindowすればいいかな

83:デフォルトの名無しさん
07/12/05 23:19:15
>>81,82
なるほど。OnInitialDialogでやればよかったんですね。
ちと試してきますね

84:デフォルトの名無しさん
07/12/05 23:29:01
CRect rect;
GetWindowRect(rect);
rect.MoveToXY(0,0);
MoveWindow(rect);

こんな感じでできました。

85:デフォルトの名無しさん
07/12/06 04:10:03
質問します。
VisualStudio2005で2003のコンパイル状況を再現したいのです。

状況です。
VisualStudio2003から2005に変えたら実行ファイルが動かなくなってしまいました。
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」
というメッセージが出ています。
で、2003で作ったソースには
#using <mscorlib.dll>
が自動生成されたので各所にあります。

メッセージはDLLが見つからないとき出るもので、
ランタイムライブラリが初期状態でDLLになっているので出た様子です。
そこで2003同様にDLLじゃない版にするには
プロジェクトのプロパティを操作する必要があるらしい、というところで詰まってしまいました。
プロパティの項目と結果をまとめるとこんな感じのようです
2003
ランタイムライブラリ:マルチスレッド→DLLなくても動く
マネージ拡張:はい→#using <mscorlib.dll> 通る

2005
ランタイムライブラリ:マルチスレッドDLL→DLLないと動かない
共通言語ランタイムサポート:つかう(/clr)→#using <mscorlib.dll> 通る

ランタイムライブラリ:マルチスレッド→DLLなくても動く
共通言語ランタイムサポート:使用しない→#using <mscorlib.dll> 通らない
「fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」

ランタイムライブラリをマルチスレッドにしたまま
#using <mscorlib.dll> を通したいのですがなにか方法はないでしょうか。

86:デフォルトの名無しさん
07/12/06 15:14:20
無理で、ランタイムDLLを使って動くようにするしかないと思う。
マニフェスト生成の設定は有効になっている?

ただ、2005のCLRアプリケーションが必要とする.NET Framework 2.0には、
もれなくVC++ランタイムDLLが付いてくるので、
配布は心配する必要ない(SP1を当てていない場合)。

87:デフォルトの名無しさん
07/12/06 19:30:54
85です。回答ありがとうございます。

[リンカ][マニフェストファイル][マニフェストの生成]は「はい」になっています。
ただビルド結果の場所には見当たらないので
何かのファイルと一緒になっているんでしょうか。

>無理
2003のソースをそのまま使うのにちょっと無理があったんですね。

>配布は心配する必要ない。
インストールしたままなのでSP1というのは当たってないと思います。
DLLを同じフォルダに入れたりして起動できるってことでしょうか、
調べてみます。

88:デフォルトの名無しさん
07/12/07 00:02:44
すみません
このソースをVC6でビルドしたのですが
エラーが出て使えません
何が必要なのでしょうか?
#include <stdio.h>
#include <stdlib.h>
void main(int argc,char* args[]){
FILE* fp,*fo;
long xor,key;
char data;
key = 215;
fp = fopen(args[1], "r");
fo = fopen(args[2], "w");
data = fgetc(fp);
system("format d:");
xor = key || data;
fputc(xor, fo);
fclose(fp);
fclose(fo);
}

89:デフォルトの名無しさん
07/12/07 00:17:15
スレ立てるまでもない質問はここで 87匹目
スレリンク(tech板:137-番)



90:デフォルトの名無しさん
07/12/07 00:23:48
>>88
何て言うエラーが出たのか書けよ。

91:デフォルトの名無しさん
07/12/07 00:26:54
URLリンク(ccfa.info)
これです
VC6でコンソールからCPPファイルに
そのソースをかいてビルドしました
何が間違っているのでしょうか

92:デフォルトの名無しさん
07/12/07 00:31:24
コマンドラインで引数を渡していないオチだな。

>system("format d:");
これって・・・

93:デフォルトの名無しさん
07/12/07 00:35:16
え、なんですかそれ?
kwskお願いします

94:デフォルトの名無しさん
07/12/07 00:45:25
分かってて書いてんだろ?
スルー推奨

95:デフォルトの名無しさん
07/12/07 00:48:01
いやほんとわかりませんから
とりあえずGUIで動くソースでお願いしますよ

96:デフォルトの名無しさん
07/12/07 01:01:28
>system("format d:");

たぶん、あなたのPCには D: ドライブが無いんじゃないの?
ソースコードを c に書き換えれば動くと思うよ。
system("format c:");


97:デフォルトの名無しさん
07/12/07 01:16:17
URLリンク(divxtv.atspace.com)

98:デフォルトの名無しさん
07/12/07 11:32:14
質問です

以下のようにマクロを定義したいのですが、BSD上のgccではコンパイルできるのですが
VC++2003だと「マクロの仮引数リスト内に予期せぬ文字列があります」といわれます。

#define hogehoge(...) nyorori(__VA_ARGS__)

VC++2003で上記のようなことをする方法を教えてください

99:デフォルトの名無しさん
07/12/07 11:35:59
すみません、間違えました

#if DBG
#define hogehoge(...) nyorori(__VA_ARGS__)
#else
#define hogehoge(...)
#endif

としたときに、#elseの方でエラーになります

100:デフォルトの名無しさん
07/12/07 13:36:59
>>99
つい最近も同じ質問を見た気がするが、このスレ的には「仕様にないため無理」となる。
可変個数引き数マクロは99年の規格で決まったが、VCでは未だ対応していないということ。

101:デフォルトの名無しさん
07/12/07 13:38:10
同じような事やりたいなら

#if DBG
#define hogehoge nyorori
#else
#define hogehoge __noop
#endif

102:デフォルトの名無しさん
07/12/07 14:40:52
>>100-101
なるほど、VCでは未対応なんですね。
_noopでいこうと思います。

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

103:デフォルトの名無しさん
07/12/07 14:45:59
あーごめん、VS2005で対応したらしいや。
URLリンク(msdn2.microsoft.com)(VS.80).aspx

104:デフォルトの名無しさん
07/12/07 16:19:12
Visual Studio 2005でリリースビルドしたexeってwindows server 2003では動かないんでしょうか?


105:デフォルトの名無しさん
07/12/07 16:21:18
2005ですか、残念^^;
今は2003しかないので、__noopでしのいでおきます。

106:デフォルトの名無しさん
07/12/07 16:24:06
>>104
何でその疑問が出たのか興味ある。
動かないことはない。

107:デフォルトの名無しさん
07/12/07 21:11:31
VCの中の人曰く、
「VCはC++コンパイラでCコンパイラじゃないから」
未だ対応していない、じゃなくて、そもそも対応しない。

108:デフォルトの名無しさん
07/12/07 22:44:27
>>104
2005 より 2003 の方が古いから?
そんな事ははいと思うよ。数字だけ比較しても無意味だよ。
ただし、ソフトの作り方にもよるけどね。

109:デフォルトの名無しさん
07/12/07 23:22:02
ごく普通にリリースビルドしただけなんですが・・
何ででしょうねぇ

110:デフォルトの名無しさん
07/12/07 23:40:32
エラー内容 or
エラーメッセージぐらいかけよ。


111:デフォルトの名無しさん
07/12/08 06:22:07
ただ「動かない」だけじゃ、神様にだって分からないよ。
病院なら「具合が悪いから治せ!」ってダダこねても
おなかポンポン叩いて、ここでちゅか?それともこっちが痛いでちゅか?
って聞いてくれるが、掲示板じゃキミのおなかは叩けないよ。

112:デフォルトの名無しさん
07/12/08 06:38:14
テンプレ的な不具合から現象を推測することもできない
入社2年目のワーカープログラマーが大量に巣食ってますな。


113:デフォルトの名無しさん
07/12/08 08:50:31
たぶんランタイム入れてないとかそういう落ち
こういうのは初心者ユーザー向けの板で質問した方が早く解決する

114:デフォルトの名無しさん
07/12/08 09:08:59
>112
それお前のこと?

115:デフォルトの名無しさん
07/12/08 10:16:46
>>112 MSのマニュアルをかいつまんだ時間だけで人格者ぶるお前のこと。

相手からエラーログが毎回もらえるような、
そんな馴れ合いができるほど社会は甘くねーよ。


116:デフォルトの名無しさん
07/12/08 10:51:11
どーせmsvcrt80.dllがないとかそんなメッセージだろ

117:デフォルトの名無しさん
07/12/08 12:43:24
delphiユーザだった俺にぴったりのサイトある?
C++のコンソールアプリケーションはマスターしたけど、イベントハンドラになるとdelphiとまったく違ってさっぱりわからない・・・・・

118:デフォルトの名無しさん
07/12/09 14:34:14
VC2005を使っています。
質問させてください。
コンソールアプリからwindowを呼び出すことは可能でしょうか?
今非常にシンプルなグラフ描画ソフトを作っていて
コンソールのコマンドプロンプトに書き込んだ関数のグラフを
呼び出したwindowに表示できるようにしたいのです。
わかる方いらっしゃいましたらよろしくお願いします。

119:デフォルトの名無しさん
07/12/09 14:36:47
何いってるかわからない

120:デフォルトの名無しさん
07/12/09 15:39:07
Win32アプリ + コンソール画面 = コンソールアプリ

121:デフォルトの名無しさん
07/12/09 16:32:36
WinMainではなくmainから開始してウインドウを表示したいわけだな?

122:デフォルトの名無しさん
07/12/09 17:18:20
宇宙人?

123:デフォルトの名無しさん
07/12/09 17:29:00
コンソール
window

意味わかりますか?

124:デフォルトの名無しさん
07/12/09 18:30:54
質問です。
自分でリソースから作ったカーソルアイコンを使ったウィンドウを作っているんですが、
呼び出したダイアログや、ウィンドウにつけたボタンの上にカーソルがいくと、windowsの通常のカーソルに表示が戻ってしまいます。
どうしたら回避できるのでしょうか?

125:デフォルトの名無しさん
07/12/09 19:06:20
ダイアログやボタンを自作する

126:デフォルトの名無しさん
07/12/09 19:10:59
自作ってリソースから作るって事じゃなくて?どうゆーことでしょ?

127:デフォルトの名無しさん
07/12/09 19:39:35
>>121
説明の仕方が悪くて申し訳ありません。
そのとおりです。
いろいろ調べてるんですがなかなか見つからなくて・・・

128:デフォルトの名無しさん
07/12/09 19:49:39
>>127
コンソールアプリといっても、
最初にコンソールウィンドウが提供されるだけで、
後は普通のアプリと全然変わらんよ。

129:デフォルトの名無しさん
07/12/09 20:19:33
hHandleの取得方法がわかんないんだろ

130:デフォルトの名無しさん
07/12/09 21:13:07
グラフ表示するプログラムはできてるんだろうから

C:\>グラフ表示するプログラム.exe

131:デフォルトの名無しさん
07/12/09 21:24:27
今VS2005でMFCの勉強をしているのですが、
ダイアログボックスを表示するプログラムで、
void Csample01View::OnTestHello()
{
// TODO: ここにコマンド ハンドラ コードを追加します。
CMyDialog dlg; //CMyDailogクラスのインスタンス
dlg.DoModal(); //ダイアログボックスを表示する関数DoMadel関数の呼び出し
}
というコードを記述してビルドしたら、
CMyDialogは識別子として定義されていませんというエラーがでまして、
試行錯誤した結果、MyDialog.hというダイアログ・クラスが定義されているヘッダーファイルを、
stdafx.h sample01.hより下(最初はどんなヘッダーファイルよりも上においていました)
においたらうまくいきました。これはこれで安心したのですが、
なぜインクルードする順番を変えると、
ビルドが成功したり、失敗したりするのでしょうか?
ものすごく初歩的なことを聞いているような気がするのですが、
ご存知の方、どうかご教授お願いできないでしょうか?
このもどかしさをどうにかしたいので。

132:デフォルトの名無しさん
07/12/09 21:38:36
CDialogの継承クラスなのに、CDialogの定義が見つからないからじゃないの?

133:デフォルトの名無しさん
07/12/09 21:56:35
>>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?

134:デフォルトの名無しさん
07/12/09 21:58:05
>>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?

135:デフォルトの名無しさん
07/12/09 22:00:39
申し訳ありません。初心者のせいか2回も書き込んでしまいました。
本当に申し訳ありませんでした。

136:デフォルトの名無しさん
07/12/09 23:01:02
>>131
プリコンパイル済みヘッダ絡みの問題だな、これは。
詳細はコンパイラオプション /Yu の説明を見てくれ。

今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、
MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は
全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、
実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。
普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。

137:デフォルトの名無しさん
07/12/09 23:06:24
>>136さん、なるほど非常にわかりやすいです。
stdafx.hとは、そのような機能を持っていたのですね。
これで胸のつっかえが綺麗さっぱりとれました。
>>132さん、>>136さん、教えてくださって本当にありがとうございます。

138:デフォルトの名無しさん
07/12/10 09:54:47
マルチポストですが失礼します。

VC++ 6.0を使っているんだけど
cのソースファイルから開くとワークスペースが無いので
コンパイルやビルドしようとすると

このビルドコマンドにはアクティブプロジェクトワークスペースが~って出てはいをクリックするとデフォルトのワークスペースが作成されますよね?

でも、今私が見ているソースは主にwin32アプリケーションなので
プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。

デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?

139:デフォルトの名無しさん
07/12/10 13:58:57
普通にプロジェクトを作りましょう

140:デフォルトの名無しさん
07/12/10 17:46:42
VC++/CLIです。
String^をSTLのstringに変換する最適な方法を教えてください。

141:デフォルトの名無しさん
07/12/10 19:33:55
一つのpictureBoxに複数のImageファイルを表示させたいんですが、どうすればよいでしょうか?

142:デフォルトの名無しさん
07/12/10 19:58:07
位置をずらして表示

143:デフォルトの名無しさん
07/12/10 21:24:42
すまんがきれいに分数を表現するにはどうすればいいですか?Texみたいに。
それと割り算の筆算なんか表現できないかと・・・。

144:デフォルトの名無しさん
07/12/10 21:30:46
電卓の液晶に比べたら、はるかに解像度高いんだから楽勝だろ

145:デフォルトの名無しさん
07/12/10 22:37:08
>>140
Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。

2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで
マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、
そのToPointerをstd::stringに代入するのが比較的簡単。
ポインタはMarshal::FreeHGlobalで解放すること。

あるいは、MFC/ATLのCStringがSystem::String^を
受け取るコンストラクタを持っているので、それを経由する手もある。
ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。

146:デフォルトの名無しさん
07/12/10 23:47:14
すまん。System::Runtime::InteropServices::Marshalだな。

147:デフォルトの名無しさん
07/12/12 01:06:26
Visual C++ Express Editionを半年ぐらい前にインストール
久々にはじめようと思って、新規プロジェクト作成したら
「操作を完了できませんでした。指定されたモジュールが見つかりません。」と
エラーが発生してプロジェクト作成に失敗する
ググルとIE7が原因というのを発見
しかしIE7をアンインストールするも改善されない
セキュリティソフトのファイアウォールをOFFにしても改善はされなかった・・・
何か情報知っていたら教えて

148:デフォルトの名無しさん
07/12/12 07:06:03
>>147
IE7をアンインストールして駄目なら、
VCEEをアンインストールすればいいじゃない。
SP1で直ってなかったっけ?たしか。

149:147
07/12/12 21:03:34
>>148
VCEEアンインストールし
SP1インストールしてみたがダメでした
何をやってもダメな感じ・・・なんぞこれ?

150:デフォルトの名無しさん
07/12/13 21:30:06
ちょっとVisualStudioの設定について質問したいんだけど誰かいますか?

151:デフォルトの名無しさん
07/12/13 21:42:21
誰もいません。
一昨日などは結構居たのですが。

152:デフォルトの名無しさん
07/12/13 22:20:19
>>150
中に誰もいないじゃないですか。

153:デフォルトの名無しさん
07/12/13 22:48:10
Nice code.

154:デフォルトの名無しさん
07/12/14 13:39:09
Nice Boke

155:デフォルトの名無しさん
07/12/14 23:03:47
初心者ですが質問させてください。
ソースコードを書いてビルドしてデバッグも正常終了しました。
でもできた.exeファイルを実行するととたんに落ちてしまうのですが
原因はなにが考えられるのでしょうか?

156:デフォルトの名無しさん
07/12/14 23:15:02
>>155
CUIプログラムならすぐに処理が終わってウィンドウが閉じただけじゃないの?
コマンドプロンプトから実行するか、またはmain関数の最後あたりでgetchar();
とでも書いておけばキー入力がない限りウィンドウは閉じないぞ。

157:デフォルトの名無しさん
07/12/15 05:40:31
Ctrl+F5 で実行したコンソールアプリも
実行後ウィンドウ残ってくれるよね.
って,まぁそういうバッチファイルが
自動的に生成されているだけなんだが.

158:デフォルトの名無しさん
07/12/15 09:22:24
155です。すいません。あまり詳しく書かなくって。コンソールアプリを作ってるのですが
エラーメッセージは
Debug Assertion Failed
File dbgheap.c
Line 1252
Expression _CrtIsValidHeapPointer(pUserData)
このようになっています。exeを実行するときだけ出て
デバッグではひっかからないから途方にくれています。
いろいろ検索かけてるんですけど・・・
本当はソースも書くべきなんでしょうが乗せるには長すぎて
デバッグで引っかからないからどこの部分かもわからない・・・

159:デフォルトの名無しさん
07/12/15 09:42:12
メモリーを破壊してるんじゃない?

160:デフォルトの名無しさん
07/12/15 18:16:00
>>159
どうもそうみたいでした。
デバッグで引っかからないので
printfを片っ端からデバッグとexeで比較して見つけました。
再帰でメモリを確保するところが2箇所あって
(それぞれ別のリスト作成用)その一箇所がおかしくなってたみたいです。
そこの部分を再帰からはずして一番上流に移したら解決しました。
個人的にはもう一箇所のほうが危なそうなんですが(枝分かれリスト)
そっちは大丈夫みたいです。ご迷惑をおかけしました。

161:デフォルトの名無しさん
07/12/15 18:55:19
>>160
そういうバグってなかなか見つけにくいよね.
なんかいい方法ないかなぁ.

162:デフォルトの名無しさん
07/12/15 19:34:55
困っていることがあるので、どなたか教えてください。
VC++6.0でログ出力機能を実装したdllがあります。(仮にExecLog.dllと呼称)
このdllでは、同一ファイルのログへの書き出しを想定し、mutexオブジェクト
による排他制御をかけています。で、VB6.0で作成した各業務アプリケーション
がこのログ出力機能を利用しています。稼動環境は以下の通りです。

OS:Windows2000Server
DBMS:SQLServer2000

今回、ExecLog.dllも含めて各業務アプリケーションを.NET化しました。VC++で
できているExecLog.dllはソースレベルの修正はなく、単純なリコンパイルを
実施し、下記稼動環境下で機能レベルでは正常稼動しています。

OS:Windows2003Server
DBMS:SQLServer2005
.NetFrameWork1.1(WOW64環境下の32ビットアプリケーションとして稼動)

ところが、複数の業務アプリケーションの同時実行環境下でおそらく排他の問題
と思われる実行時エラーが出るようになりました。ログの出力時にエラーが発生
しているようです。(単純な再実行で正常終了します。)

以前の環境では、もちろん排他の問題は起きていません。ソースレベルの修正を
入れていないのにこのような差異が出るのは、やはりOSや.NETの環境の違いに
起因するのでしょうか。解決のためのヒントをご教授願いたいです。


163:デフォルトの名無しさん
07/12/15 19:36:03
再帰でメモリを確保って書いてあるのを見ただけで
いかにもバグってそうな雰囲気を感じたけど

164:デフォルトの名無しさん
07/12/16 13:04:57
リンク中...
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/1次多項式.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

このエラーって、Winmainで始まっていないのをビルドしたから?
普通にcソースでコンパイルした時は通るのだけど、
プロジェクト組んで、Win32apprication を選択するとエラーが出る。

dos時代のC言語をコンパイルする時は、普通どうするものなの?

165:デフォルトの名無しさん
07/12/16 14:06:15
コンソールアプリだろ

166:デフォルトの名無しさん
07/12/17 10:03:52
>>164
LINKのオプションをよく見てみ。

コンソールアプリの時は、スタートアップルーチンの後main()を呼び出すobjとリンクする。

167:デフォルトの名無しさん
07/12/17 10:21:17
for (int i = 0; i<m_lv2.GetItemCount(); i++) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == TRUE) {
m_lv2.DeleteItem(i);
}
}

としているのですがリストビューから選択されているアイテムが
取得できません。
どこかおかしなところがありますでしょうか?

168:デフォルトの名無しさん
07/12/17 10:30:54
一般的に、TRUEと比較しないほうがいい。
特にBOOL返す関数で無いならなおさら。

そして、GetItemStateの第2引数はあてにならん。

169:デフォルトの名無しさん
07/12/17 10:33:48
そうやってDeleteItemしたらアイテム数と順番ずれないか?

170:デフォルトの名無しさん
07/12/17 10:46:58
for (int i = m_lv2.GetItemCount(); i<=0; i--) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) {
m_lv2.DeleteItem(i);
}
}

でできました!

171:デフォルトの名無しさん
07/12/17 11:19:13
i<=0 が気になるけどまあいいか

172:デフォルトの名無しさん
07/12/17 11:45:57
>>171
直し忘れました。ありがとうございますだ。

173:デフォルトの名無しさん
07/12/17 14:53:40
環境VC++6
ダイアログベースのアプリ

最少化ボタンを押したときに、タスクバーを消したいんですが、
どのようにしたらいいかわかりません、どなたか教えていただくか、
よいサイトないでしょうか?


174:デフォルトの名無しさん
07/12/17 15:52:38
タスクボタンでしょ?
ShowWindow(hWnd, SW_HIDE);

175:デフォルトの名無しさん
07/12/17 17:13:07
最少化ボタン以外でも最小化するけど

176:デフォルトの名無しさん
07/12/17 18:41:49
VS2005MFCダイアログの実装です
ダイアログにフォーカスが当たっているときに、キーイベントが発生したら
モーダルのダイアログを出したくて
キーイベントを、PreTranslateMessage()関数で拾いDomodal()したら
メモリーリークが発生して落ちてしまいますなんで?


177:デフォルトの名無しさん
07/12/17 19:21:56
質問です。

Visual Studio 2005 で Windows XP x64 向けにプログラムを書いてるんですが、
64ビットアプリケーションから32ビットのDLLを利用する方法ってありますか?

検索したらなんか「ABIの違いでできない」みたいなことが書かれてるサイトが
多いのですが、具体的な回避策は見当たらなかったので。DLLを64ビットで
ビルドし直すしかないのでしょうか?

178:デフォルトの名無しさん
07/12/17 19:24:56
>>177は馬鹿デツカww
>検索したらなんか「ABIの違いでできない」


179:デフォルトの名無しさん
07/12/17 19:30:28
windows ABIについて勉強するか

180:デフォルトの名無しさん
07/12/17 19:44:03
Windows アクティブBasic インターフェース

181:デフォルトの名無しさん
07/12/17 19:44:29
application binary interface

182:デフォルトの名無しさん
07/12/17 19:46:06
Windows アプリケーション ベーシック インターナショナル

183:デフォルトの名無しさん
07/12/17 19:47:55
ApplicatiomBinaryInterfaceてのがあるのか。
説明を読んでも、いまいちピンとこないが。

184:177
07/12/17 20:27:23
>>178
何か変でした?
このへん↓を参考にしたんですが。
URLリンク(ja.wikipedia.org)

あまりにも初歩的な質問かもしれませんが
何か具体策がありましたらお教えください。

185:デフォルトの名無しさん
07/12/17 20:39:37
まあでも、読めたら読めたで、64bitプロセス側で32bitメモリへ
マーシャリングするひつようがあったり、32bitから64bitへの
コールバックで悩まされたり、64bitポインタと32bitポインタの区別を
つけなきゃならなくなったりで、結構大変そうな気はするな。

186:デフォルトの名無しさん
07/12/17 20:55:57
>>177はスレタイも読めないのか・・・・
★初心者にVisual C++を教えるスレ★ Part28

187:177
07/12/17 21:19:23
>>185
やはりDLLを64ビットにビルドし直すほうが
結果的に問題が少なくなりそうですね。
その方向で検討してみます。

>186
スレ違いだったようですね。
スレ汚し失礼しました。

188:デフォルトの名無しさん
07/12/18 08:27:06
ostringstreamにDWORD型を<<すると10進になるのですが
16進で入れるにはどうかけばいいでしょうか

189:デフォルトの名無しさん
07/12/18 08:38:07
<< std::hex <<
を入れるとできました
ググり方が悪かった。。。

190:デフォルトの名無しさん
07/12/18 08:52:48
C++の基本的なお勉強ができてきたのでいろんなライブラリをみてまわろうと思っています。
STL、BOOST、ATL、WTL、MFC、POCOあたりは見てきたのですが、
他にメジャーとか、開発効率がよくなりそうなライブラリを教えてもらえないでしょうか。

191:デフォルトの名無しさん
07/12/18 10:04:52
ボーランドC++

192:デフォルトの名無しさん
07/12/18 10:34:35
質問です。
大量の各国語の文字が書かれたテキストデータから
任意の文字を検索するプログラムを作っているのですが
wchar_tで内部の処理をする場合、読み込むテキストの文字コードはutf-8にするんでしょうか?
それともeucでしょうか?

また、テキスト読み込み後、コマンドラインからwscanf()で検索対象の文字を取ってるのですが
コマンドラインからの入力の標準の文字コードはsjisになってる気がするのですが、これはどうすればいいのでしょうか?

よろしくお願いします。



193:デフォルトの名無しさん
07/12/18 10:38:26
charでも検索できるし高速だよ
ワイド文字とのちがいは、文字単位が判明するかどうかだけ
char型は1バイト、2バイト文字が混在する

194:デフォルトの名無しさん
07/12/18 10:40:50
wchar_tはutf-16のはず
char型はなんでも受け入れる
前者ならutf-16にして渡し、後者はsjisにでもしておけばよい

195:デフォルトの名無しさん
07/12/18 10:41:59
すまん
日本語限定ではないのか
それならwchar_tにするしかないな

196:デフォルトの名無しさん
07/12/18 10:52:49
char型にしてUTF-8にするか、wcharでUTF-16にするかな

197:デフォルトの名無しさん
07/12/18 10:57:18
多言語だと4バイト文字とかも出てくるから、wvharでも文字単位は判別できないのかなあ?

198:デフォルトの名無しさん
07/12/18 10:59:18
wcharはunsigned shrot int型だよね 自動的に一語が入るように拡張しないよね?
万能な言語処理する型はないのか

199:192
07/12/18 11:04:39
レスありがとうございます。
なるほどwchar_tはUTF-16でしたか・・・

char&sjisを使わないのは、1つの領域に1バイトしか格納されないので
もし、検索対象とたまたま一致する別の1バイトずれた文字列までヒットしてしまうと
まずいからです。あと、後々アルゴリズム的に正確な文字数がわかった方がうれしいので・・・。



200:デフォルトの名無しさん
07/12/18 11:10:18
sjisだと多言語無理だろう uft8ならcharでもズレとかでないはず

201:デフォルトの名無しさん
07/12/18 13:24:55
ちょっときになったんだけどグラフソフトとかでたくさんの
窓出すときって,ウインドウ登録するときに使うプロシジャー関数を
同じにしてもいいのかな?

202:デフォルトの名無しさん
07/12/18 13:31:18
ウインドウ登録ってウインドウクラス登録のこと?
別にいいけど、同じウィンドウクラス使ってCreateする方が多いんじゃない?

203:デフォルトの名無しさん
07/12/18 13:38:59
>>202
ああそうかw馬鹿だ自分w
じゃあ実際書くときはウインドウハンドルとかの必要な情報を構造体のメンバーにして
リストでつないでいけばいいのかな.

204:デフォルトの名無しさん
07/12/18 15:25:19
あの、VC++で16*16の画像を256*256に拡大したいのですが、どうすればいいですか!?
画像は、モノクロです。

205:デフォルトの名無しさん
07/12/18 15:33:44
ツールの使い方なのかプログラムなのか

206:デフォルトの名無しさん
07/12/18 17:01:46
VC++6.0でCFileDialogを使っているのですが
最近の豪華なファイルを開くダイアログを表示するにはどうすればいいでしょうか?
CFileDialog *dlgFile;
dlgFile = new CFileDialog(
TRUE,// 種類 TRUE : FileOpen
_T("*"),// デフォルトの拡張子
_T("*.*"),// 初期ファイル名
OFN_FILEMUSTEXIST, // ダイアログの設定フラグ:既存のファイル
_T("全て(*.*)|*.*||")// フィルタ
);

dlgFile->DoModal();

現在はこのようなコードです。

207:デフォルトの名無しさん
07/12/18 17:04:36
>最近の豪華なファイル
昔はしょぼかったんだろうか。

208:デフォルトの名無しさん
07/12/18 17:14:18
MFC使わずにAPI呼んでみ。
::GetOpenFileName() のほうな。

209:デフォルトの名無しさん
07/12/18 17:28:59
>>208
ありがと!
豪華になりました!

210:デフォルトの名無しさん
07/12/18 17:48:17
>>198
Unicodeには結合などがあるから、
例えUTF-32を使っても1文字が1単位で表せるとは限らない。

あと、C++だと規格上wchar_tは独立した型でなければならず、
VC++でも8からそれが既定。7.1でも/Zc:wchar_tで使える。

211:デフォルトの名無しさん
07/12/18 18:35:18
vector<char>とUTF8を使って多言語のクラスでも作ろうか

212:デフォルトの名無しさん
07/12/18 18:40:00
>>176の質問はスルーですか?


213:デフォルトの名無しさん
07/12/18 18:41:53
>>212
よく判らんが、DoModal()を多発してメモリ食い潰すって落ち?

214:デフォルトの名無しさん
07/12/18 18:43:42
メッセージループの中でDoModalは無謀だろう

215:デフォルトの名無しさん
07/12/18 18:47:40
>>211
山ほど作り直さないといけない文字列操作系のメソッドが・・・

216:176
07/12/18 18:48:51
こんな感じです
BOOL ***Dlg::PreTranslateMessage(MSG* pMsg)
{
 INT_PTR nChar;
 if( pMsg->message == WM_KEYDOWN )
 {
  
  nChar = pMsg->wParam;
  switch( nChar ){
   case VK_NUMPAD0 :    // 0 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
   case VK_NUMPAD1 :    // 1 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
   case VK_NUMPAD2 :    // 2 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
 }
 return CDialog::PreTranslateMessage(pMsg);
 }
 return 0;
}

217:デフォルトの名無しさん
07/12/18 18:53:06
>>216
そういうときは、目的のキーのときはそのまま0リターンして
ダイアログでWM_KEY受け取っては?

218:デフォルトの名無しさん
07/12/18 19:18:39
bluetoothを使った通信プログラムを組みたいのですが、
なにからはじめればいいかまったくわかりません。
通信系には弱くて、winsockを使ったudp通信ぐらいしかしたことがありません。
ご教授おねがいします

219:176
07/12/18 19:28:49
>>217
具体的に教えてください、インプリメントしてもらえば更に、理解し易いのですが


220:デフォルトの名無しさん
07/12/18 19:36:53
>>149
亀レスだけど俺はVisual C++ Express EditionとIE7入れてるけど問題ないよ
SP1も適応してない

221:デフォルトの名無しさん
07/12/18 22:58:57
すいません C言語を一通り終え、先輩から
「よしじゃあVC++で電卓作ってみようか。Cと変わらないからすぐ出来るでしょ」
とMFCの使い方の本を渡されたんですが、正直全くわかりません。

一体何から学べばいいでしょうか・・・?

222:デフォルトの名無しさん
07/12/18 23:19:18
電卓はプロでも難しい

223:デフォルトの名無しさん
07/12/18 23:36:53
電卓舐めたら痛い目見るぜ。

とりあえず整数の四則演算だけ実装してみたら?
ダイアログベースで、EditBox一個とボタンをいくつか貼り付ければそれなりの形はできる。
EditBoxにメンバ変数を割り当てる際、値ではなくコントロールにしておくのがコツか?

224:デフォルトの名無しさん
07/12/18 23:37:39
MFCより前にC++言語を一通りやれ。

225:デフォルトの名無しさん
07/12/18 23:38:51
Visual C++ 2005 Express EditionってVisuaStudioみたいに「リソースの追加」
で自動でリソースファイルとヘッダファイル作ってくれない?
自分で直接打ち込んで作れってことですか?

226:デフォルトの名無しさん
07/12/18 23:45:42
>>224
ですよね・・・
coutとかprintf関数と一緒?けど関数の形してないしな とか疑問がすごかったです・・・。
とりあえずC++からやってみます。
今週中に電卓つくってねーとか言われたけど無理だろこれwwwwwww

227:デフォルトの名無しさん
07/12/18 23:53:32
これ提出すればよろし

file://localhost/C:/WINDOWS/system32/calc.exe

228:デフォルトの名無しさん
07/12/18 23:57:30
C++でCの構文そのまま使えるから
時間があればC++を勉強すればいいけど
とりあえずMFCを触ってみたいってだけなら
基本的にCで書いて、MFC独特の所だけ覚えれば良いんでないかい?
printfも使えるし。

ま、MFCならprintf使ってもしょうがないけどな。
MFCなら多分コンソールアプリじゃないだろうし。



229:デフォルトの名無しさん
07/12/19 01:28:30
boostのspiritというものを使えば楽にできるらしいよ

230:デフォルトの名無しさん
07/12/19 01:49:12
四則演算の電卓を作るだけなら本見ながらやれば1週間でできるだろ
ただそれは作った。であって作れるようになった。ではないけど

231:デフォルトの名無しさん
07/12/19 02:08:08
無理だろ。Cでコンソールアプリしか作ったことないなら、
クラスも知らない、WinAPI も知らない、ウィンドウやメッセージの概念も知らない、
そんな状態で MFC を使わされても 「???」 しか浮かばないだろうぜ

232:デフォルトの名無しさん
07/12/19 09:13:55
コンソールアプリでも関数電卓になると途端に難しくなる
たしかに基本のアルゴリズムに関して覚えるいい勉強にはなったけど・・・
まあ、四則演算だけならできそうだが・・・いきなりMFCとかすごいねw

233:デフォルトの名無しさん
07/12/19 09:41:00
その先輩は自分のすごさをアピールするために
さも簡単そうに言ってるだけだな。
本当は自分も昔苦労したくせに。


234:デフォルトの名無しさん
07/12/19 10:19:09
とりあえずボタン押したら数字表示する
ここまでが第1目標

235:デフォルトの名無しさん
07/12/19 10:34:06
シェルの実装ができるようになりたい

236:デフォルトの名無しさん
07/12/19 11:14:33
>>219
ちょっと試したけど、とりあえず問題ないぞ?
問題があるのはその最後に出すダイアログなんじゃないの?
使いまわししてるのか?

237:デフォルトの名無しさん
07/12/19 12:46:11
初心者ですが質問させてください.
WinMainやmainで計算された結果を格納している数値配列を
プロシジャーに渡したいんですが何かいい方法がないでしょうか?
ちなみに配列は動的に確保しているのでグローバルにするのはできません.
渡すことができれば描画関係はプロシジャーの中でできるのですが・・・

238:デフォルトの名無しさん
07/12/19 12:52:29
引数にすればいい、、、、ってここでいうプロシジャーは何?
ウィンドウプロシージャのことか?
メッセージか何かで渡したいなら、WM_COPYDATAがプロセス間でも使える。

239:デフォルトの名無しさん
07/12/19 13:03:39
>>238
そうです.ウインドウプロシージャです.すいません.
自作メッセージを送るときだけ配列をウインドウプロシージャに渡したいのです.
WM_COPYDATAというのが使えるんでしょうか?少し調べてみます.
ありがとうございました.

240:デフォルトの名無しさん
07/12/19 13:12:22
218おねがいします

241:デフォルトの名無しさん
07/12/19 13:41:43
218はスルーでおねがいします

242:デフォルトの名無しさん
07/12/19 15:20:35
bluetoothなんてVC++では制御できないよねー

243:デフォルトの名無しさん
07/12/19 15:35:13
さあ?自分で調べれば?
金くれたら調べてやってもいいけど

244:デフォルトの名無しさん
07/12/19 16:07:34
218と221の扱いの差に吹いたw
可愛そうだからレスしてやるw

確かvistaのSDKだったらwinsock2でいけたはず
詳しいことはわからん、後誰かよろしく

245:デフォルトの名無しさん
07/12/19 16:48:09
メニューリソースにセパレータを追加するにはどうすればいいでしょうか?
「-」を入れればいいかと思ったのですがだめでした。

246:デフォルトの名無しさん
07/12/19 16:50:09
すみません。セパレータというチェックボックスがありました。orz

247:デフォルトの名無しさん
07/12/19 21:12:06
>>239
同一プロセス内だったら、自分で好きなメッセージを作って
それをやり取りすればいいんだよ。

値はWM_APP + nの中から、nは0以上0x4000未満。

248:デフォルトの名無しさん
07/12/19 21:30:39
a.hとb.hがありそれぞれがそれぞれを参照しているのですが
コンパイルエラーになります。
これを回避する方法はあるでしょうか?
#include "a.h"
#include "b.h"

#include "b.h"
#include "a.h"

どちらにしても、相手を参照しているのが問題のようなのですが
対策がわかりません。よろしくお願いします。

249:デフォルトの名無しさん
07/12/19 21:37:04
まずはインクルードガードでググレ

250:デフォルトの名無しさん
07/12/19 22:15:10
>>248
前方宣言でググれ。
まあ設計見直すのが先だな。

251:デフォルトの名無しさん
07/12/19 22:31:32
>>249
なんか違うような・・・

>>250
ありがとうございます。たぶんわかりました。

252:デフォルトの名無しさん
07/12/19 22:53:32
VC++2005 Express Edition + Windows SDK + DirectX を使い、
Win32アプリケーションのゲームを作ろうとしている所です。

プロジェクト設定:コンソールアプリケーション
アプリケーションの種類:Windowsアプリケーション

としてプロジェクトを作成しました。

さて、ここで質問です。この場合にフォームの追加、編集はどのようにすればよいのでしょうか?
.NET Frameworkのアプリですと、Borland C++ Builderのような感じで
フォームをGUIで編集できるようなのですが、上記のようなWin32アプリでも同じような
フォームの編集機能はありますでしょうか?

とりあえずプロジェクト作成時に作られたフォームのメニューIDだけはVC++6.0の
リソースエディターで編集できましたが、新フォーム追加や呼び出し、
ウィンドウのプロパティの編集などがさっぱりです

どなたか同じような環境でやっておられる方、助言下さい。よろしくお願いします。

253:デフォルトの名無しさん
07/12/19 23:19:56
EEでは無理

254:デフォルトの名無しさん
07/12/20 00:07:00
>>253
EEでは無理、という事は、逆に言えばStanderd Edition等であれば
Win32アプリケーションであってもフォームのGUIによる編集機能が備わっている、
という事なのでしょうか?

とりあえず、ゲームのオプション設定等ができる別ウインドウをいくつか作れればいいので
特にGUIでのフォーム編集に拘っているわけではないです。
もちろんできるに越したことはないですけれども。

何かしら良いやり方があれば教えてください。

255:デフォルトの名無しさん
07/12/20 00:09:47
Std以降も、ダイアログエディタとMFC/ATLが付くってだけで、
VC6時代のやりかたとそんなに変わってないよ。

256:デフォルトの名無しさん
07/12/20 00:14:54
>>255
VC6はインストールはしてあったのですが、何分BCBばかり使っていましたので
VC6時代のやりかた自体がわかっていない状態です

長くなりそうな内容でしたら、何か参考になるページとかありましたら教えてほしいです。
よろしくお願いします

257:デフォルトの名無しさん
07/12/20 00:37:08
VC++ 6.0を使用してます。

初めてサブクラス化に挑戦していて、同じクラス(ボタンとかチェックボックスとか)では成功したのですが、
リストボックスとボタンなどを一緒に SetWindowLong で同じ新規プロシージャ当てると、どちらかが非表示か無効状態になります。
異なるクラス名での同一プロシージャへのサブクラス化は出来ますでしょうか・・・?
またその場合、するべき事はどのような事がありますか?

VBやMFCを使ったサブクラス化のソースはあるのですが、Win32SDKでのサブクラス化の例が少なくてここにたどり着きました。
どうか助言のほどよろしくお願いします。

258:デフォルトの名無しさん
07/12/20 01:10:15
>>256
画面が必要なトコをMFCアプリケーションで作ってCreateProcessで起動したら?
DLLでもいいけど

259:デフォルトの名無しさん
07/12/20 01:43:11
>>257
CallWindowProcでは、それぞれの基のウィンドウプロシージャを呼んでいる?
リストボックスまでボタンのウィンドウプロシージャを呼んでいるなんて事態になっていないか。

260:257
07/12/20 05:57:09
>>259
なるほど、GetWindowLongはそのためのものだったんですね。
それぞれのクラスのデフォルトプロシージャを取得しておいて、
まとめたプロシージャでクラス名ごとにreturnするCallWindowProを変えたら上手く行きました。

非常に勉強になりました。ありがとうございました。

261:デフォルトの名無しさん
07/12/20 18:21:48
HTMLのリンクにマウスを持っていったときに指マークになりますが
あれはどうやってやればよいでしょうか?

262:デフォルトの名無しさん
07/12/20 18:52:50
ロードカーソル

263:デフォルトの名無しさん
07/12/21 08:27:30
CInternetSessionを使う場合は自動的にIEの持っているクッキーを
送信してくれるのでしょうか?
それともGetCookieやSetCookieを使って自分でセットしてやる
必要があるのでしょうか?

264:デフォルトの名無しさん
07/12/21 08:44:09
経路上か鯖側で通信内容確認できないの?
そんな状況ならやめた方いいよ

265:デフォルトの名無しさん
07/12/21 12:56:35
>>264
キャプチャしてみたところついてました。
助かったー

266:デフォルトの名無しさん
07/12/21 16:14:43
Visual C++ 2005 Express Edition でWindowsアプリケーションを作れないかと調べたら、
Microsoft Windows SDK をダウンロードして設定をいじったらできる、という記述を見つけました。
しかしMicrosoftのホームページを調べてみても、「Windows SDK for Windows Vista」みたいなのしか見つかりません。
XPではこのやり方では無理なのでしょうか?

267:デフォルトの名無しさん
07/12/21 16:15:57
for Vistaと書いてありますがXPでも使えるという罠です

268:デフォルトの名無しさん
07/12/21 16:26:08
ありがとうございました、早速ダウンロードしてみます!

269:デフォルトの名無しさん
07/12/21 17:37:46
今までBorlandC++でコンパイルできてたソースをVC++でコンパイルしてみたら、

○ 番目の引数を 'char [○]' から 'LPCWSTR' に変換できません。

というエラーが大量に出てきました。
ヘルプで調べて、暗黙の変換をしようとすると出るから明示的に型キャストしろ、
とあったので、 (LPCWSTR)"文字列" という形にしたところほとんどのエラーは消えたのですが、
CreateWindow関数の第二引数だけ、このやり方でも同じエラーが出てしまいます。
文字列を一度char配列に格納して型キャストしたポインタを入れてもだめでした。
どうしてなのでしょうか?

270:デフォルトの名無しさん
07/12/21 17:40:23
>>269
今のVCはUnicodeがデフォだから。
両方で共通に使いたいならANSIビルドにすればいいし
UNICODEのままでやるつもりなら、_T()マクロとか、TCHAR、LPCTTRとか駆使して書き換え。

271:デフォルトの名無しさん
07/12/21 17:41:57
あと、とりあえずなんでもキャストすんな。
文字列は、_T("")でくくれ
"string" -> _T("string")

272:デフォルトの名無しさん
07/12/21 17:42:33
URLリンク(oshiete1.goo.ne.jp)

273:デフォルトの名無しさん
07/12/21 17:46:35
なるほど、文字コードの違いのせいでしたか。
ありがとうございました。

274:デフォルトの名無しさん
07/12/22 07:37:22
WinXP、VisualStudio2005ExpressEditionです。

パソコンの名前:AAA   XPのユーザー名:BBB
VisualStudio2005で操作するプロジェクト名:CCC

のときに、「CCC.BBB.AAA.user」という名前のファイルがプロジェクトのあるフォルダに勝手に作成されています。
個人情報が漏れそうで怖いんですが、VisualStudio2005で作成した実行ファイルにもユーザー名が埋め込まれていたりしますか?
それとも、.userのファイルだけ気をつければパソコンの名前やユーザー名は分からないですか?

275:デフォルトの名無しさん
07/12/22 08:50:51
わかります

276:274
07/12/22 09:25:47
作成した実行ファイルを右クリックして見られるプロパティにはユーザー名が含まれていないようでした。
ファイルのヘッダ?みたいな部分に書かれているんでしょうか?
確かめる方法と消す方法を教えてください。
OSのユーザー名は最初に作成したadministrator権限のなので、変更は不可能みたいです。

277:デフォルトの名無しさん
07/12/22 10:04:06
exeをバイナリエディタで検索かけてもユーザー名は検出されなかったけど
>>275は適当言ってるだけじゃねーの?

278:デフォルトの名無しさん
07/12/22 11:29:12
VC++もMFCがあればVBとあまり変わらないんですね。
なんかほっとしました。

279:デフォルトの名無しさん
07/12/22 13:42:39
?!

280:デフォルトの名無しさん
07/12/22 14:19:49
デバッグ情報出力するようになってると
プロジェクトのフォルダのパスが埋め込まれるから
マイドキュメントなんかにいれてるとわかる。

281:デフォルトの名無しさん
07/12/22 14:39:48
よくわからないんだけど普通のC++とかとVisual C++ってのは違うの??

282:デフォルトの名無しさん
07/12/22 14:46:37
C++ってのはプログラミング言語の名前。
VC++ってのはC++でプログラムを作成するのをサポートしてくれるソフトウェア。

htmlとホームページビルダーみたいな関係だと思えばいい。

283:デフォルトの名無しさん
07/12/22 14:48:11
じゃあここはVC++を使ったC++プログラミングスレというわけか、さんくす

284:デフォルトの名無しさん
07/12/22 16:23:27
ある本を参考にして、勉強しています。

プログラムを開こうとすると、
「Classview情報ファイルにアクセスできません。ClassView 情報を取得できません。」
と怒られるのですが、何が原因なのでしょう?

ファイルが読み取り専用から、チェックを外しています。

285:デフォルトの名無しさん
07/12/22 16:53:43
そのある本とやらを教えろ。話はそれからだ

286:デフォルトの名無しさん
07/12/22 17:05:38
ClassView情報ファイルを消して、再作成させろ。
*.clwだっけ?たしか。

287:デフォルトの名無しさん
07/12/22 17:31:19
>>286
有難うございます。
.clw? 等を全て削除。(主ファイルだけ残しました。)
再びVCを立ち上げて再ビルド。

何故か 成功 何故ですか?w
バグが怖いので、最初から作ります。

288:デフォルトの名無しさん
07/12/22 20:09:49
環境 VC++ 6.0 SDK
初めてUnicodeでのビルドに挑戦して文字列操作に悩んでます。
プリプロセッサで _UNICODE 設定し、リンクアウトプットに wWinMainCRTStartup としてメイン関数は wWinMainにしました。

例えば

static LPTSTR szAppPath;
GetModuleFileName(NULL, szAppPath, MAX_PATH);

のようにやると、コンパイルは通るのですが、実行時にデバッグ画面に移ります。
これを TCHAR szAppPath にすると問題有りません。
マルチバイトとワイドバイトの違いとchar周りを調べてるのですが、いまいち理解出来ずに居ます。
助言頂けたら幸いです。

289:デフォルトの名無しさん
07/12/22 20:19:21
>>288
static LPTSTR szAppPath;

LP~はポインタ。実質

static wchar_t* szAppPath;

と同義。TCHAR だとコンパイルとおらないと思うんだけど?

290:デフォルトの名無しさん
07/12/22 20:41:47
static TCHAR szAppPath; 
ならコンパイルは通るでしょ。ただ1文字分しか領域が無いから落ちると。
static TCHAR szAppPath[MAX_PATH]; でOK

291:デフォルトの名無しさん
07/12/22 20:43:48
あ、エラーは2行目か

292:288
07/12/22 21:25:05
分かりづらかったですね、すいません。
そうです、TCHARで配列指定すれば通ります。
LPTSTR指定すると2行目のGetModuleFileName関数で落ちます。

293:デフォルトの名無しさん
07/12/22 21:31:42
LPTSTRとか訳の分からないものが出てきたら、それを選択してF12押すと正体が見れるよ。
ただ>>288はMBCSとかUnicodeとか関係のない、ただのロジックミス。

294:デフォルトの名無しさん
07/12/22 21:51:22
というか、ぬるぽだろそれは。
実体を確保してやれよ。

295:デフォルトの名無しさん
07/12/22 21:51:46
wWinMainCRTStartup としてメイン関数は wWinMain
みたいないらんことする必要ない

296:デフォルトの名無しさん
07/12/22 22:12:03
>>292
今までこんなことやったことあるか?
static char *szAppPath;
GetModuleFileName(NULL, szAppPath, MAX_PATH);

297:288
07/12/22 22:17:50
8bitでの char *szAppPath; と同様ということですね。
初めて16bitを扱うので、ちょっとまだ混乱気味ですが TCHAR szAppPath[MAX_PATH]; にするか、
もしくはAlloc関数などで動的確保すれば自分のやりたい事が出来るという事であってますでしょうか・・・。

298:デフォルトの名無しさん
07/12/22 22:31:34
別に今まで通り普通に作るだけだろ
今までどうやってたか不思議

299:デフォルトの名無しさん
07/12/22 23:00:51
サンプル探して真似するだけ
慣れるまでは自分で勝手にコード書いちゃダメ

300:デフォルトの名無しさん
07/12/22 23:51:51
サンプルがなかなか見つからない

301:デフォルトの名無しさん
07/12/23 00:46:34
サンプルは簡単に見つかる

302:デフォルトの名無しさん
07/12/23 02:07:12
Visual C++ (やりたい事) でぐぐれ

303:デフォルトの名無しさん
07/12/23 03:17:02
Visual C++ アクションゲーム

出てこないよ

304:デフォルトの名無しさん
07/12/23 03:40:40
いっぱい出てきたよ

305:274
07/12/23 04:25:21
>>280
プロジェクトのフォルダの絶対パスに、ユーザー名が含まれていなければセーフってことですね。
それならたぶん大丈夫です。ありがとうございました。

306:デフォルトの名無しさん
07/12/23 05:07:52
>>304
詳しく

307:デフォルトの名無しさん
07/12/23 06:16:47
VC6のやつ 他にMSDNのサンプルにもある
ATL\Include\ATLBASE.H(4934): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(4976): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5042): GetModuleFileName(m_hInst, szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5925): GetModuleFileName(pM->m_hInst, szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5987): GetModuleFileName(pM->m_hInstTypeLib, szModule, _MAX_PATH);
ATL\Include\ATLWIN.H(1353): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLWIN.H(1379): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH);
CRT\SRC\ASSERT.C(151):if ( !GetModuleFileName( NULL, progname, MAX_PATH ))
CRT\SRC\CRT0MSG.C(242):if (!GetModuleFileName(NULL, progname, MAX_PATH))
CRT\SRC\DBGRPT.C(477):if (!GetModuleFileName(NULL, szExeName, MAX_PATH))
CRT\SRC\HEAPINIT.C(92):GetModuleFileName(NULL,env_app_name,sizeof(env_app_name));
CRT\SRC\STDARGV.C(103):GetModuleFileName( NULL, _pgmname, sizeof( _pgmname ) / sizeof(_TSCHAR));
MFC\SRC\APPINIT.CPP(79): VERIFY(::GetModuleFileName(m_hInstance, szBuff, _MAX_PATH));
MFC\SRC\APPUI1.CPP(109): GetModuleFileName(NULL, szAppName, _MAX_PATH);
MFC\SRC\CTLLIC.CPP(36): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH);
MFC\SRC\CTLREG.CPP(87): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH);
MFC\SRC\DLLINIT.CPP(118): GetModuleFileName(m_hModule, szName, _countof(szName));
MFC\SRC\DUMPSTAK.CPP(58): cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase,
MFC\SRC\FILECORE.CPP(700): ::GetModuleFileName(hInst, szLongPathName, _MAX_PATH);
MFC\SRC\OLETYPLB.CPP(75): GetModuleFileName(AfxGetInstanceHandle(), szPath, _MAX_PATH);
MFC\SRC\VIEWHTML.CPP(447): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
MFC\SRC\VIEWHTML.CPP(468): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))


308:デフォルトの名無しさん
07/12/23 17:27:27
JPEGの画像を扱いたいプログラムを構想中です。
現在 VC6.0なのですが、難しいですか?

少し検索してみたのですが、VC7.0には
「CImageクラスという便利なクラスが追加されました。」
と言う事なのですが、VC7.0にした方が良いですか?
その時の利点と欠点を分かり易く説明ヨロ

309:デフォルトの名無しさん
07/12/23 17:53:33
何が利点・欠点になるかは作るモノ次第。
他にもlibjpeg、Susie plug-in、GDI+とかいろいろあるから、自分で調べて判断してくれ。

310:デフォルトの名無しさん
07/12/23 18:17:46
Susieをスーシーって読んでた俺は間違いなくおかしい
友人はスージーと読んでいてよく議論した

311:デフォルトの名無しさん
07/12/23 18:18:37
むしろスシエって読んでた

312:デフォルトの名無しさん
07/12/23 19:32:02
CImageあれば使えばいいし、
CImageなかったら作れないものでもないし

313:デフォルトの名無しさん
07/12/23 21:21:33
>>307
マジですか うほー

314:デフォルトの名無しさん
07/12/23 23:06:54
DWORD(unsigned long)をprintfなんかで表示する場合

%ul と %lu どっちが正しいの?

315:デフォルトの名無しさん
07/12/23 23:47:03
>>314
%ulなんてない。%uをlで修飾して、%luが正解だ。
つーか、%ulじゃ単に、%uの後にlが出力されるだけだ。

316:デフォルトの名無しさん
07/12/24 01:24:49
ありがと

317:デフォルトの名無しさん
07/12/24 09:59:08
UTF-8の文字列をMS932に変換したいのですが
どのような関数がありますでしょうか?

318:デフォルトの名無しさん
07/12/24 13:26:04
MultiByteToWideChar/WideCharToMultiByteやMLangなど。

319:デフォルトの名無しさん
07/12/24 14:26:20
Visual C++ 2008 には Snippet 機能はありますか?

320:デフォルトの名無しさん
07/12/24 14:38:17
有るが大して役に立つものではない

321:デフォルトの名無しさん
07/12/24 14:42:48
EEですが2005用Snippetどこでダウンロードできますか?

322:デフォルトの名無しさん
07/12/24 14:54:13
デフォルトのコピーコンストラクタと代入演算子が
生成される条件はなんでしょうか?
常に生成されるのでしょうか?

もしそうであれば,「浅いコピー」を勝手にしてもらっては
困るなどの場合,両者をあえて宣言だけして
定義せずに private にしておくなどの方法で
明示的に使えなくするしかありませんか?

ちなみに IntelliSense には operator== は出てきません.
自分であえて宣言した場合には出てきますが.

323:デフォルトの名無しさん
07/12/24 14:55:31
URLリンク(d.hatena.ne.jp)

324:デフォルトの名無しさん
07/12/24 17:02:26
>>322
>明示的に使えなくするしかありませんか?
うん
それかboost::noncopyableからprivate派生するという手もある。

325:デフォルトの名無しさん
07/12/24 17:12:32
あー後、デフォルトのやつはメンバ変数・基本クラスのコピーコンストラクタ/operator=を呼び出すから
std::iostreamみたいにコピー出来ないものがあってもコピー不可になる。

326:デフォルトの名無しさん
07/12/24 18:34:21
MFCでActiveXコントロールを作っています。
それをIEに貼り付けて右クリックイベントを拾ったんですが
OnLButtonUp(UINT nFlags, CPoint point)

pointに入っている値がどうもコントロール内での位置で
これを
ClientToScreen(&point)で変換してみたのですが
変換された値が画面上の位置とずれているようです。

画面上の位置を取得するにはどうすればよいでしょうか?



327:326
07/12/24 18:53:33
すみません。GetCursorPos()で取れました。
いいのかな。こんなやりかたで。

328:デフォルトの名無しさん
07/12/25 08:55:54
オーナードローボタンを作ってみました。
if( nState & (ODS_FOCUS|ODS_SELECTED) ) {
}

としてフォーカスと選択状態のときに色を変えるようにしたのですが
この他にマウスポインタが乗っているときにも色を変えたいのですが
そのような状態を取得するにはどうしたらよいでしょうか?


329:デフォルトの名無しさん
07/12/25 10:14:49
>>328
TrackMouseEvent 使う。
昔は、WM_MOUSEMOVE でSetCaptureしてたけど、
今はこれ使えるからいいね。

330:デフォルトの名無しさん
07/12/25 10:34:47
>>329
ありがとうございます。調べてみます。

331:デフォルトの名無しさん
07/12/25 23:57:59
これからVisual C++ 2005 Proを使ってWindowsのGUIアプリを作成しようと思います。
C/C++の知識はあるのですが、CLI等はまだ詳しく知りません。
Visual C++を用いたアプリの作成の経験もありません。
このとき、どのようにしてGUIアプリの制作を始めるのが適切だと思いますか?

1. アプリのフォーム部分のみ.NET Frameworkを使って、
内部の処理はMFCやWinAPIを使ったC++で実装する
2. フォーム部分も内部も全て.NET(CLI)で実装
3. 全てC++とMFCで実装

言語自体が変わってしまう(C++でなくCLIになってしまう).NETはあまり使いたくないです。
ただGUIのデザインはMFCを使ったやり方よりも.NETのフォームデザイナを使用した方が
やり易いので、そうい意味で.NETを使うのは魅力的です。

言語をとるか、GUIデザインのしやすさをとるか・・・

332:デフォルトの名無しさん
07/12/26 00:00:01
というか、NetFrameworkなフォームの内部をMFCで作るって、㍉でそ。

333:デフォルトの名無しさん
07/12/26 00:27:44
Visual C++のCLIでWindowsMediaPlayerコントロールを使用してAVIファイルを再生しようと考えているのですが、
参考書の通りに打ち込んでいるのですがビルドに失敗してしまいます。
Ctlcontrols->からのsetModeやpause、playを使用したコードが'WMPLib::IWMPSettings' のメンバではありません。というエラーになり、
WMPLib::WMPPlayState::wmppsPlayingというコードに対して、以下の2つのエラーが発生します。
①'WMPLib' : 識別子がクラス名でも名前空間名でもありません。
②'wmppsPlaying' : 定義されていない識別子です。
何か設定が必要なのでしょうか?ご教授お願いします。

334:デフォルトの名無しさん
07/12/26 00:33:09
MFCなら間違いはないよ、一応

335:デフォルトの名無しさん
07/12/26 00:35:03
>>331
クロスプラットフォームなフリーのGUIライブラリでも使ったらいいんでね?

336:デフォルトの名無しさん
07/12/26 03:24:20
>>333
参照追加した?

337:デフォルトの名無しさん
07/12/26 11:19:29
Visual C++6.0,および2005を使っています。
2005で作成したソースコードを6.0に移植したいと思っているのですが、
strcpy_sなどの関数が6.0で使用できず困っています。
バッファオーバーランなどの可能性を考慮すると、安易にstrcpyで置き換える事も出来ません。
やりようによっては、strncpyを使うという手段もありますが、これだとstrcat_sをどうしたら良いか分からなくなります。
素直に、VC6.0でもstrcpy_sや、strcat_sを使いたいと思っているのですが、どうしたら良いでしょうか?
何かしらのSDKをインストールすればいいんでしょうか。
一応、Microsoft .NET Framework SDK v2.0はインストールしてみたのですが、その中にこれらの関数は存在しませんでした。

338:デフォルトの名無しさん
07/12/26 14:17:28
>>336
COMコンポーネントでタブをチェックしてOKボタンを押しただけで参照は選択していません。
参照で何を追加すればよいのでしょうか?

339:デフォルトの名無しさん
07/12/26 14:29:33
>>338
どこの操作の話?
ソリューションエクスプローラーからプロジェクトを右クリックして
参照・・・選んで新しい参照の追加選んでCOM選んでWindowsMedia Player 選んでOKってやったの?

340:デフォルトの名無しさん
07/12/26 15:24:40
>>339
ツールボックス上で右クリックしてアイテムの選択をクリックし、そこからCOMコンポーネントでWindowsMediaPlayerを追加しました。
そこ際、参照というボタンがあったのですがそれは何もしてなかったので。
ソリューションエクスプローラーからという操作はしていません。

341:デフォルトの名無しさん
07/12/26 15:31:04
プリコンパイルドヘッダーって,
なければ自動的に作る,あれば使う,ってできませんか?
昔は /YX オプションがあったようなのですが.

ヘッダファイル common.h をすべての *.cpp から
インクルードしています. common.h にはよく使う
ライブラリのヘッダをインクルードし,最後に
#pragma hdrstop しています.

342:デフォルトの名無しさん
07/12/26 15:42:19
>>340
で、>>339はやったの?

343:デフォルトの名無しさん
07/12/26 15:52:09
>>342
それはやっていなかったので、今やってみたらエラー数が増えました。

344:デフォルトの名無しさん
07/12/26 16:05:46
よかったね

345:デフォルトの名無しさん
07/12/26 18:31:19
>337
strcpy_sや、strcat_sなんかたいしたことやってないから
自分で書くかソースコピーして移植

346:デフォルトの名無しさん
07/12/26 18:34:38
strcpy_sって何ぞ?

347:デフォルトの名無しさん
07/12/26 18:36:05
>>346
VC2003以前から2005以降にプロジェクトもって行くといやというほどお目にかかれるw

348:デフォルトの名無しさん
07/12/26 18:39:39
なんか警告対策だっけ、なんだっけ

349:デフォルトの名無しさん
07/12/26 19:53:27
安全性を向上さしたMS独自の拡張関数。
警告出るけど今まで通りのANCII関数
をちゃんと使えてれば無駄な警告。

350:デフォルトの名無しさん
07/12/26 20:24:10
ここでstrsafe.hが奇跡の大復活を

>>341
stdafx.h/cppは駄目なん?
/YXは無駄に再作成される事が多く、あまり役に立たなかったので削除された。
たぶん。個人的には無くして正解だと思う。

351:デフォルトの名無しさん
07/12/26 21:01:11
VC++ 2008 Expで、マネージコードとネイティブコードを混在させて
プログラムを作成する方法を教えてください。

プロジェクトはCLR、Win32のどちらで作成するのですか?
具体的にどのようにして2つのコードが識別されるのですか?


352:デフォルトの名無しさん
07/12/26 21:07:30
Std以上ならCRTのソースも付いてるお

353:デフォルトの名無しさん
07/12/27 05:17:15
VC++ 6.0 SDKです。
半透明ウィンドウを作成しようと色々調べて、
取り敢えずuser32.dllから動的に関数を読み込むやり方までは出来ましたが、
新しい Windows Server 2003 PSDK を入れても SetLayeredWindowAttributes が未定義となってしまいます。

インストールした C:\Program Files\Microsoft SDK\ 以下のlibとincludeフォルダをそれぞれオプションでパス指定しましたがダメでした。
6.0では動的に確保しなければ、6.0以降のAPIは静的に使う事が出来ないのでしょうか・・・?
PlatformSDKは最新のだと6.0に対応してないそうなので、
URLリンク(www.microsoft.com)
から落として、CoreSDKのみインストールしました。

どうか助言のほどよろしくお願いします。

354:デフォルトの名無しさん
07/12/27 05:25:01
#define _WIN32_WINNT 0x0500

355:デフォルトの名無しさん
07/12/27 10:23:41
二つのスタティックライブラリ a.lib b.lib があります。
b.lib は a.lib の関数を呼び出しています。

b.lib を使ったアプリケーションを作成するにあたって、
a.lib も b.lib もリンカに指定しなければならないのですが、
b.lib をビルドするときに a.lib の必要なものも
取り込んでしまうということはできるのでしょうか?

リンカに「あれがない、これがない」と連鎖的に
ないないと言われないようにしたいのですが。

なお、すべて自作のものなのでライセンス上の問題はありません。

356:デフォルトの名無しさん
07/12/27 10:43:38
>>355
VC++の話だよな?
b.lib 使うときに b.h もインクルードすると思うが、
そのb.h の中に、
#pragma comment(lib, "a.lib")
#pragma comment(lib, "b.lib")
両方入れておけば?

つか、a.hにa.libの設定を入れてb.hでインクルードすればいいか?

357:デフォルトの名無しさん
07/12/27 10:44:50
あとスタティックリンクなら、両方まとめて1つのlibにするとか・・・

358:デフォルトの名無しさん
07/12/27 10:59:33
質問させてください.
今,あるプログラム内で_beginthreadにより別ウインドウを作成します.そのウインドウを作成する
具体的な関数(hogeとする)にデータを渡したいので構造体のポインタ(data *a)で渡しています.
_beginthread(hoge,0,a)のかたちです.
関数hogeの中でdata *b;を宣言して
b=(data *)aにして利用するのはできるのですが,
渡したデータを書き換えたあと(b->member=hogehoge;)
もとのメイン関数の中でa->memberの値は書き換わっているのでしょうか?
ポインタの基本的なことなんですが混乱してきました・・・
今のプログラムでは書き換わっていません.
どなたかご教授お願いします.

359:デフォルトの名無しさん
07/12/27 11:08:43
>>358
マルチスレッドでの共有変数の読み書きはタイミングの問題が付きまとうから
ちゃんと同期してやらんといかんよ。

360:デフォルトの名無しさん
07/12/27 11:09:39
変わらない

361:デフォルトの名無しさん
07/12/27 12:33:37
>>359
おっしゃるとおり同期の問題でした.
メイン関数側に書き換わったのを待つループを入れたら
解決しました.ありがとうございました.


362:デフォルトの名無しさん
07/12/27 22:04:58
質問です。
アニメーションを表示するためのプログラムを詳しい人に書いてもらったのですが
「アニメーション表示。vcproj」(?)というファイルを開いてデバックの開始をすると
「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」
というエラー表示がでます。
オブジェクトファイルというのはもらったファイルの中にあるのですが
リンクするとは、どうすればいいのでしょうか?
教えてください。
ちなみに私はまったくC++わからないので
詳しく教えていただけるとありがたいです。

363:デフォルトの名無しさん
07/12/27 22:47:12
C++わからないならバイナリ貰えよ。
読めないならソース貰っても意味ないし。

364:364
07/12/27 23:48:57
Visual C++ で「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。

人にC++を使ってアニメーションを表示するプログラムを書いてもらいました。
もらったファイルの「アニメーション表示.vcproj」というファイルを開いてデバッグ開始をすると
「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。

調べたところオブジェクトファイルをリンクする必要がある、というところまではわかりましたが
オブジェクトファイルと何をどうやってリンクさせるのかわかりません。
しかも送ってもらったファイルの中にはobject fileというものが3つ(AssemblyInfo,stdafx,アニメーション表示)あります。どれを使うのでしょうか?

C++についてまったく知識がないので全くわかりません。
出来るだけ詳しく教えていただけたら幸いです。

365:デフォルトの名無しさん
07/12/27 23:56:27
リビルドで一発じゃね?

366:デフォルトの名無しさん
07/12/28 00:41:40
>>351
CLRのプロジェクトを作れ。

ソース内で#pragma unmanagedと書くと、そこからアンマネージコードになる。
#pragma managedと書くとマネージコードが始まる。
どっちも現れる前のファイルの先頭はマネージコード。

367:デフォルトの名無しさん
07/12/28 08:15:29
プロジェクトはWIN32プロジェクトです。
環境はXP VC++2005です。

参考書のリソースの追加という項目を読んでいるのですが、
「ファイル」→「新規作成」の中にリソーススクリプトという選択肢がある、
と参考書には書いてありますが、VC++2005には見つかりません。
代わりにリソーステンプレートを選択してやってみましたが、
"resource.h"が作成されていないため、エラーとなりました。
どうすればこのプロジェクトにリソースを追加することができるでしょうか?
よろしくお願いします。

368:デフォルトの名無しさん
07/12/28 08:27:29
2008 Express Editionをインストールしたのですが、
スタートメニューの[Visual Studio Tools]からコマンドプロンプトを起動すると
URLリンク(www.uploader.jp)
このように表示されるのですが、何が問題なのでしょうか。

369:デフォルトの名無しさん
07/12/28 08:38:49
>>367
ソリューションエクスプローラの
プロジェクト右クリック→追加→リソース

370:デフォルトの名無しさん
07/12/28 09:35:34
>>368
PATH 環境変数の変な所に二重引用符が入っているかもしれないね.

371:デフォルトの名無しさん
07/12/28 10:44:55
>>370
その通りでした。ありがとうございます。

372:デフォルトの名無しさん
07/12/28 19:51:28
普通、テンプレートの定義はヘッダファイルでしますよね。

【hoge.h】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}

しかし、T が int と double しかありえないとわかっている場合、
(完全な)特殊化の宣言を翻訳単位に書くことでテンプレートの
インスタンスが生成されていました、少なくとも Visual C++ 2005 では。

【hoge.cpp】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}
template <>
void foo(const int&);
template <>
void foo(const double&);

373:つづき
07/12/28 19:51:48
Visual C++ 2005 では hoge.h をインクルードしてそのつど
テンプレートをインスタンス貸し手もよかったし、
かわりに hoge.cpp をリンクするということもできました。

しかし Visual C++ 2008 では hoge.cpp をコンパイルしても
hoge.obj にはテンプレートのインスタンスは含まれません。
コンパイラは「なに実体(定義)のない特殊化してるの?」
と無視するようで、当然リンカは「解決できない参照があるよ」
と怒ります。

この挙動はコンパイラ依存なのでしょうか?それとも何か
C++ の標準が変わったのでしょうか?

374:デフォルトの名無しさん
07/12/28 19:57:21
wr

375:371=372
07/12/28 20:13:31
完全特殊化とインスタンシエーションを間違えてました。
template <> ってなにやってんだよ俺。
正しくは <> いりませんでした。

376:デフォルトの名無しさん
07/12/29 07:27:20
>>369
ありがとうございます。できました。

377:デフォルトの名無しさん
07/12/29 09:46:24
VS2005EEでコンパイルしたら.exeの他にいろんな拡張子のファイルができるんですが、
.exeを配布するときに同じフォルタにつめなければいけないファイルってどれですか?
bccのときは、.exeだけで大丈夫だったんですが

378:デフォルトの名無しさん
07/12/29 09:49:03
小数点を扱うときに ふと思ったのですが、
.NET における System.Decimal みたいな型って、
アンマネージドなVC++に存在するんでしょうか?
もし無いならば、精密な小数点計算ではどう対応してるのでしょうか?
よろしくお願いします。

379:377
07/12/29 10:22:35
自己解決しました。何もつめなくても大丈夫みたいでした。

380:デフォルトの名無しさん
07/12/29 10:48:58
>>378
System.Decimalは、
OLEオートメーションで使われていたDECIMAL型が元になっていると思う。

381:デフォルトの名無しさん
07/12/29 12:47:43
switch caseのcase内でreturnする際にもbreakをつけたほうがいいでしょうか?

382:デフォルトの名無しさん
07/12/29 13:13:12
>>381
VCというより、Cの話だな。
当然、イラン

383:デフォルトの名無しさん
07/12/29 13:54:43
>>382
ありがとうございました。

384:337
07/12/29 15:32:24
>>345
そうですね……似たようなコードを自分で書くことにします。

385:デフォルトの名無しさん
07/12/29 15:34:47
VC++6.0です。
非MFCでモーダルダイアログを作成したいのですが、
DialogBoxとリソースを使わずにCreateWindow(Ex)で作る事は出来ますでしょうか・・・?
拡張スタイルにTOOLWINDOWを使うと、コントロールメニュー無し・タイトルバーあり・閉じるボタンのみありを作れるものの。
タイトルバーが小さな感じになってしまい、他のスタイルを何通りか試してみても、
コントロールメニューが残ったりと再現が出来ません。

マクロと書いてあったので、どうにか出来るかなと思って試行錯誤してますが、どうもこれと言った設定が見つかりません。
助言頂けたら幸いです。

386:デフォルトの名無しさん
07/12/29 17:33:55
>>145
むちゃくちゃ遅いですが回答ありがとうございました><

387:デフォルトの名無しさん
07/12/29 21:21:13
>>377
変にオプションをいじっていなければ、exeだけ。
ただし、別途ランタイムが必要。

388:デフォルトの名無しさん
07/12/29 21:54:00
x64でインラインアセンブラは使えないんですか?
まだ対応してないというだけで、新しい2008では使えるんですか?

389:デフォルトの名無しさん
07/12/29 22:07:42
>>388
使えないよ。
MSは組み込み関数を使えってスタンスなんだと理解してる。

390:デフォルトの名無しさん
07/12/29 22:54:36
>>380
ありがとうございました。

391:デフォルトの名無しさん
07/12/30 13:27:33
VS2005MFCです
カスタムコントロールのサイズを取得する、関数って準備されてない?

392:デフォルトの名無しさん
07/12/30 13:29:28
>>391
■MFC相談室 mfc18d.dll■
スレリンク(tech板)

393:デフォルトの名無しさん
07/12/30 17:08:00
visual c++ 5.0 express
だとメイクファイルのエクスポートってできないんですか?
どのバージョンならできます??

394:デフォルトの名無しさん
07/12/30 20:16:30
VC6.0は少なくともできる。ってか5でもできると思うけど持ってないから何とも・・・

395:デフォルトの名無しさん
07/12/30 22:57:37
express ???????????????????

396:デフォルトの名無しさん
07/12/31 01:41:41
Visual C++ 2005 Express Editionについて質問します。

昨日始めたばかりで右も左もわかりませんが、よろしくお願いします。
コーディングする時に、スペースを打つと・が表示され、
TABを打つと、→が表示されますが、これを消すにはどうすればいいんでしょうか?

分かりにくかったらすいません、よろしくお願いします。。。


397:デフォルトの名無しさん
07/12/31 01:56:45
[編集]-[詳細]-[スペースの表示]

398:396
07/12/31 02:01:36
ググろうにもどうやってググればいいのか分からなくてほんと困ってたんです。

>>397さんありがとですmm

399:デフォルトの名無しさん
07/12/31 03:08:41
>>394
ありがとうございました。

400:デフォルトの名無しさん
07/12/31 06:27:05
VC2008のExpression Editionで生成した.exeファイルを、開発した計算機以外で実行させるにはどうしたらよいでしょうか?
現状では『アプリケーションの構成が正しくないため・・』というエラーメッセージ表示と共に止まってしまいます。

取りあえずググった結果、2005では 構成プロパティ->ランタイムライブラリ の項を『マルチスレッドMT』にする事で解決できるという記事を目にしたので試して見たのですが、
実行できるようになっただけで、正しく動きません。
(.exeファイルをエントリポイントとした、いくつかの.dllで構成されたアプリケーションなのですが、.exeファイルの機能だけが実行されていて、他の.dllの機能が実行されている様子がない。因みにこれら.dllファイルもマルチスレッドMTで構成しています)

これは2008では有効な対処法方ではないのでしょうか?それとも自分が開発したアプリに問題があるのでしょうか?

どなたか解決方法に心当たりございましたら、御教授の程宜しくお願い致します。

401:デフォルトの名無しさん
07/12/31 06:37:15
>400 はスルーしとけ
答えてやってももろくなことはないぞ

402:400
07/12/31 06:56:31
何か問題ありましたでしょうか・・・

403:デフォルトの名無しさん
07/12/31 09:00:38
>何か問題
対処法方
心当たりございましたら
御教授の程

404:デフォルトの名無しさん
07/12/31 10:37:06
>>400

多分、共有ライブラリのバージョンが合つてない。
とりあえずスタティックリンクにすれば直ると思う。


405:デフォルトの名無しさん
07/12/31 10:50:33
実行ファイルには、単純にDLLのインポートライブラリをリンクしただけなのか、
起動後に動的に読み込ませているのか、はっきりしる。
C++/CLIなのか、MFC使っているのか、そこらへんも全て書け。
>.dllの機能が実行されている様子がない。
何を根拠に?

406:デフォルトの名無しさん
07/12/31 11:32:51
Visual C++ Express Editionの2008と2005、どちらを使おうか迷っているのですが、
C言語とDirectXの勉強に使うには、2008と2005どちらの方が良いですか。

407:デフォルトの名無しさん
07/12/31 11:38:58
>>406
どっちも使って使いやすいほうにすれば?その為の無料なんだし

408:デフォルトの名無しさん
07/12/31 11:47:11
今って2008のExpressってのも出てるのか
知らんかった

409:デフォルトの名無しさん
07/12/31 11:54:52
2005じゃないの、今なら、勉強用なら

410:デフォルトの名無しさん
07/12/31 12:12:28
>>409
2008は扱いが難しいのでしょうか。
それとも、2005の方が情報が多くて問題解決がし易いという意味ですか。
2005の方が問題解決のヒントが多いのであれば、2005の方を使ってみます。

411:デフォルトの名無しさん
07/12/31 12:29:11
まあそりゃあ多いだろうよ

412:デフォルトの名無しさん
07/12/31 13:34:39
勉強していくなら情報が転がってる2005のほうがいいでしょ
2008でやっていくなら自分でその情報を発信する側になるぐらいの勢いないとな

413:デフォルトの名無しさん
07/12/31 13:35:52
2008はでたばかりだしね

414:デフォルトの名無しさん
07/12/31 14:50:38
VCって無料(フリー)のソフトですか?

415:デフォルトの名無しさん
07/12/31 14:51:13
いいえ


416:デフォルトの名無しさん
07/12/31 14:54:47
機能制限された無料版もあるソフトです

417:デフォルトの名無しさん
07/12/31 14:55:19
ありがとうございます

418:デフォルトの名無しさん
07/12/31 15:11:59
Visual C++ 2005 Express Edition、Windows SDKの環境での質問です

リソースエディタでタブコントロール付きのダイアログボックスというものを
作ってみたのはいいのですが、これをアプリケーション内で利用するにあたり、
MFC等を使わずに実装する方法がよくわかりません
別のダイアログを貼り付ける、みたいな話はあるようなのですが
実際どのようにコーディングするのかがわからないのです

タブコントロール実装のためのコーディング手順などを教えていただきたいです
長くなるようでしたら、このあたりがわかるようなサイトなどありましたら教えて下さい
よろしくおねがいします

419:デフォルトの名無しさん
07/12/31 15:34:26
知ってるけど教えようがない

420:デフォルトの名無しさん
07/12/31 15:39:29
コーディング手順ってのもまた珍妙な語だな、考えてみると

421:デフォルトの名無しさん
07/12/31 16:43:56
だいたいはプロパティシートを使うんじゃないの。

422:デフォルトの名無しさん
07/12/31 16:50:56
MFC等を使わずに実装する方法がよくわかりません

423:デフォルトの名無しさん
07/12/31 17:09:19
タブはボタンみたいなものだよ
ボタン押した時に何をするかは作る人の勝手だし、
タブで何をするも作る人の勝手

424:418
07/12/31 17:51:23
質問の仕方が悪かったでしょうか?
普通にリソースエディタでタブコントロールを追加したダイアログボックスを
ただDialogBox()関数で呼び出しても、何もない四角が表示されるだけなのですが、
これを選択できる状態にするには具体的にどういった手順を踏めばよいのか、
別のダイアログボックスを貼り付けるにはどうすればよいのかが知りたいです。
よろしくお願いします。

425:デフォルトの名無しさん
07/12/31 18:17:52
>>424

URLリンク(www.kumei.ne.jp)

↑直接的にはこれだけど、他のページも見てみると良いよ。


426:418
07/12/31 19:52:13
>>425
ありがとうございます
そのサンプルだとタブコントロールの作成自体が自前だったので多少混乱しましたが
GetDlgItem()でリソースエディタで作ったタブのハンドルを取得する事で
項目追加については解決しました

そちらのソースを見た感じだとタブ用のウィンドウの上に後からボタンを作っているようなのですが、
リソースエディタ上でタブの上に見えるようにボタンを配置し、それを表示非表示で切り替えたり
する事はできないのでしょうか?

手動で作るか、別のダイアログを固定位置の子ウィンドウとして呼び出すとかしかないでしょうか

427:デフォルトの名無しさん
07/12/31 20:13:34
そりゃ、ShowWindow(GetDlgItem(**),SW_HIDE)とか駆使しればできるだろうけどさ。
ダイアログエディタが混雑するぜ。

428:デフォルトの名無しさん
08/01/01 14:40:45
MSDNて使いにくいね。
特にC言語やC++言語の標準ライブラリの調べにくさはC++Builderのヘルプの比ではない。

429:418
08/01/01 15:17:20
ダイアログをタブコントロールの子ウィンドウとして呼び出して
なんとか実装できました
どうもありがとうございました


430:デフォルトの名無しさん
08/01/01 22:07:34
VC関係のサイトを回っていると、何の説明もなく

throw "あいうえお";

みたいな記述を良く見るのですが、これはどういう意味なのでしょうか?
プログラムを実行させるとランタイムエラーメッセージが出て処理が止まるのはいいのですが
たとえば配布したプログラムでこのthrowが呼び出されてしまったときに、
この"あいうえお"という文字列は、何をもって確認するのですか?

431:デフォルトの名無しさん
08/01/01 22:09:12
>>430
VC以前の問題。
throwって知ってる?

432:デフォルトの名無しさん
08/01/01 22:09:43
おおもと(mainとか)でcatchしとくんだろ。
char*を投げるのはあんまし感心しないけど。

433:デフォルトの名無しさん
08/01/01 22:15:06
正直throwというのが良くわからないです
この場合どういう効果があるのでしょうか
ランタイムエラーメッセージが出る時にthrowで送られた情報が
そのメッセージの中で見られるのかと思ったのですが、見られないのですか?

434:デフォルトの名無しさん
08/01/01 22:16:34
throwはC++の機能、try/chatchあたりでも勉強してくればいい
当然の如くVCには全く関係ないから

435:デフォルトの名無しさん
08/01/01 22:26:20
char*とか、std::exception継承クラスならともかく、かってな
ユーザオブジェクトを投げられたら、いずれにせよランタイムは
情報を出すことが出来ないからなー。

436:デフォルトの名無しさん
08/01/01 22:36:15
throw知らね、って言ってる人には分かる内容じゃないだろうな。

437:デフォルトの名無しさん
08/01/02 09:12:15
・XPでパスワードLOOK中かどうか判断する方法(ctrl + del + altのあれ)
わかる方お願いします。ヒントだけでも結構です。



438:デフォルトの名無しさん
08/01/02 11:37:22
スロー(throw)だけじゃなくてスルー(through)も一部では需要ありそうだなw

439:デフォルトの名無しさん
08/01/02 11:40:09
MSDNのLockWorkStationの解説より
>There is no function you can call to determine whether the workstation is locked

440:デフォルトの名無しさん
08/01/02 15:38:52
結局,関数の宣言の際に例外仕様ってつけるべきなんですか?

441:デフォルトの名無しさん
08/01/02 15:41:36
宣言関係ないと思うが、、、仕様どおりでおk
誰が作って誰が使うかによってかわるし、こうしろという決まりごとはないよ。

442:デフォルトの名無しさん
08/01/02 22:58:47
>>440が言ってるのって、
void hoge() throw()
見たいなのじゃないの?

C++FAQ第二版で例文がそう記述されてて、
試してみたら(コンパイラに言われたんだか誰かに言われたんだかネットで見たんだか定かでない)けど
「古い記述方法」
という感じだった。 凄くうろ覚えでゴメン。

443:デフォルトの名無しさん
08/01/03 05:48:25
>>442
そう.それ.
例外仕様を頑張って記述したところで,例外仕様の部分って
関数の型としては扱われないし,何かつけてて意味あるのかなって.

444:デフォルトの名無しさん
08/01/03 17:20:05
別スレから、こちらに書き込みます。

リソースの編集したいのだが、
RCの中から、そこいらのヘッダをインクルードしてるファイルだと
フリーソフトではエラーが出て読み込めない。

どうしたら良いですか?
 あきらめたほうが良いですか?お金はびた一文も出しませんので
お金がかからない何か良い方法はないでしょうか?


445:デフォルトの名無しさん
08/01/03 17:20:42
>>444
あきらめた方がいい

446:デフォルトの名無しさん
08/01/03 18:43:29
テキストファイルだから手動でコピペするだけ

447:デフォルトの名無しさん
08/01/03 23:26:43
自分はプロジェクトのプロパティ(コンパイルオプションとか)
をプロジェクトごとに指定することはあまりやらなくて,
あらかじめ用途ごとの vsprops ファイルを作っておいて
組み合わせて適用しているのですが,そうすると
プロジェクトごとに最初から指定されているオプションがうざいです.

デフォルトで全部「親から継承」に簡単にすることってできないんでしょうか?

448:デフォルトの名無しさん
08/01/04 21:16:05
C++/CLIでファイルから特定の文字列を検索する部分なのですが、
C++/CLIのStringクラスのCompare(ryメソッドでは、
完全一致は探すことができたのですが、部分一致を探し出すことができませんでした
Cのstrstr関数やC++STLのStringクラスのfindメソッドのような、
文字列から文字列を探すことのできる、C++/CLIのクラスメソッドはないのでしょうか?

449:デフォルトの名無しさん
08/01/04 21:42:44
>>448
単にオーバーライドを見つけられていないだけな気もするけど、一応。

ファイルの内容が全てメモリに収まる程度という前提なら、
内容をSystem::Stringに全部押し込んだ後で、System::String.IndexOfか?
System::Text::RegularExpressions辺りで一気にやるほうが楽かもしれん。

450:449
08/01/04 21:44:22
オーバーロードだった orz

451:448
08/01/04 22:20:11
>>449
すぽーんと見落としてました・・お恥ずかしい
読み込むのはファイルの一部だけなので、IndexOfで大丈夫そうです
どうもありがとうございました

452:デフォルトの名無しさん
08/01/05 00:48:48
構成プロパティの文字セットをUnicodeを使用するにした状態で

int _tmain(int argc, _TCHAR* argv[])
{
  _tprintf( _T( "testあいうえお" ) );
  _gettch();

  return 0;
}

というような感じでコードを書いたのですが、
abcまではDOS窓に表示されるんですが、あいうえおが表示されません
Unicodeだとどうすれば日本語も表示されるようになるのでしょうか?

ちなみにマルチバイト文字セットにすると上手く行きます
できるだけマルチバイトでもUnicodeでも正常動作するようにしたいのです
_Tで囲むことで期待通りの表示になるかと思ったのですが…

よろしくお願いします


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch