人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VC 6.0 で、SDKプログラミングをしています。MFCを使わずに、CStringを使う方法はありますか?

分からなかったので、stringを使おうと思ったのですが、std::vectorなどを含めて、STLがまともに使えません。(記憶があやふやなのですが、#pragma で、無理矢理警告を消すなどをしました。一応動作はしたのですが・・。こんな苦労をせずにできると思っています。)

調べてみると、http://hirose.ai.is.saga-u.ac.jp/misc_technical/vc++.html
に、Microsoftの拡張機能を設定すると、使えるのらしいですが・・。

*注: char* を使えとかは言わないでくださいね。それが面倒なので聞いているので。

●質問者: ymlab
●カテゴリ:コンピュータ
✍キーワード:Char mfc Microsoft SDK STD
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● d金魚
●50ポイント

http://home.earthlink.net/~jmoleary/stdstring.htm

StdString

StdStringというstd::stringをCStringっぽくラップしたクラスがあります。内部でSTLのstringを使っているので最終的にはSTLを使っていしまう解決方法です。

http://www.dinkumware.com/vc_fixes.html

Dinkumware, Ltd. - Fixes for Library Bugs in VC++ V5.0/V6.0

私もVC6.0ユーザーなのでSTLの苦労はあるのですが^^;(笑)

VC6付属のSTLはバグもち?らしいので上記のURLの資料のように直す必要があるらしいです。

http://www.stlport.org/

STLport: Welcome!

また、私はVC6付属のSTLに期待していないのでSTLPortというSTLを使用しています。

srcフォルダ内のvc6.makをNMAKE vc6.makとするとコンパイルされます。

◎質問者からの返答

ありがとうございます。

ラッパぽいものがあったんですね。

使ってみます。

今、もう一回頑張ってみようと思い、

StdAfx.hの

#include <windows.h>の前に、

#include <afx.h>を入れて、

プロジェクト-設定-MFCのスタティックライブラリを使用をしてみると、エラーなしで、CStringがソースに入れても、エラーがでませんでした。

こんな使い方をしてもよいのかわかりませんが・・。

ご回答ありがとうございます。


2 ● ma-kanoh
●0ポイント

http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usin...

Visual Studio 2005 Express Editions: Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う

VC 2005 Express使うとか。そうすると「文字列」はSystem::String^ a = gcnew String(”ab”);

a += ”bb”;とかでもなんでもありです。


そういう問題のような気がします。違うのかな。これだとMFCを使う理由はほとんどないかと思いますが。そもそもSTL .NETだし。


複雑怪奇なMFCよか楽だと思うけど。

◎質問者からの返答

質問文をよく読んでください。

SDKプログラミングをしているといっているでしょう。

>MFCを使う理由はほとんどないかと思いますが。

>複雑怪奇なMFCよか楽だと思うけど。

MFCを使わずに、といっているのです。

もちろん、CStringクラスはMFCのクラスの一部だということは分かっています。char*よりもメモリ確保などで実行速度が遅くなるのも承知の上です。

MFCは複雑怪奇だと思いますよ。でもCStringはchar*使うよりも楽だと思っているので質問をしたのです。

どうして、``VC6.0’’でと言っているのに、何故VC2005の話が出てくるのか、さっぱりわかりません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ