★初心者にVisual C++ ..
[2ch|▼Menu]
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' : 識別子がクラス名でも名前空間名でもありません。
A'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

4365日前に更新/252 KB
担当:undef