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* を使えとかは言わないでくださいね。それが面倒なので聞いているので。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/01/24 23:27:02
  • 終了:--

回答(2件)

id:studiokingyo No.1

d金魚回答回数47ベストアンサー獲得回数22006/01/25 03:02:19

ポイント50pt

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とするとコンパイルされます。

id:ymlab

ありがとうございます。

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

使ってみます。

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

StdAfx.hの

#include <windows.h>の前に、

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

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

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

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

2006/01/25 23:01:07
id:ma-kanoh No.2

ma-kanoh回答回数155ベストアンサー獲得回数42006/01/25 22:37:50

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よか楽だと思うけど。

id:ymlab

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

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

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

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

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

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

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

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

2006/01/25 23:10:05
  • id:ymlab
    一番目の回答者さんへ

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

    上の文章では、MFCを使っているのに、使わずにできたみたいな書き方で、御幣を招く表現でした。すみません。質問の仕方も、コンソールアプリケーションから作る方法で、(ファイル-新規作成MFC Applicationではんく)CStringだけ使えたらいいなぁと思っていたのです(これでもMFCは使っていますけどね)。

    それでも、上で教えてくださったクラスは試してみようと思います。ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません