東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は

著作とお薦めの品々は
東方熱帯林へ。

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法
  15. ヒープソートのアルゴリズム
  16. C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  17. .NETでマンデルブロ集合を描く
  18. .NETでマンデルブロ集合を描く(後日談)
  19. C++/CLI : とある文字列の相互変換(コンバージョン)
  20. インテルTBBによる選択ソートの高速化
  21. インテルTBB3.0 によるパイプライン処理
  22. Visual C++ 2010に追加されたSTLアルゴリズム
  23. Visual C++ 2010に追加されたSTLコンテナ「forward_list」
  24. shared_ptrによるObserverパターンの実装
  25. .NETでマンデルブロ集合を描く(番外編) ── OpenCLで超並列コンピューティング
  26. StateパターンでCSVを読む
  27. 状態遷移表からStateパターンを自動生成する
  28. 「ソートも、サーチも、あるんだよ」~標準C++ライブラリにみるアルゴリズムの面白さ
  29. インテルTBBの同期メカニズム
  30. なぜsetを使っちゃいけないの?
  31. WPFアプリケーションで腕試し ~C++でもWPFアプリを
  32. C++11 : スレッド・ライブラリひとめぐり
  33. Google製のC++ Unit Test Framework「Google Test」を使ってみる
  34. メールでデータベースを更新するココロミ
  35. Visitorパターンで遊んでみたよ
  36. Collection 2題:「WPFにバインドできる辞書」と「重複を許す検索set」
  37. Visual C++ 2012:stateless-lambdaとSQLiteのぷち拡張
  38. 「Visual C++ Compiler November 2012 CTP」で追加された6つの新機能

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

CodeZineに書きました。

とある文字列の相互変換

C++/CLIでの
System::String^ と std::string と std::wstring と
const char* と const wchar_t* との間を行ったり来たりする方法。

どぞ、よろしく。
※ IBM ICU(International Components for Unicode) も紹介しちょります。

投稿日時 : 2010年1月26日 21:47

コメントを追加

# re: CodeZineに書きました。 2010/01/28 1:06 T.Hirase

IBMのICUは知らなかったです。
いいですね。

>32bit/64bitを実行時に自動切り替え
エレガントな方法は知らないですが、
エレファントには、動的なリンクするとかですかね。プラグイン的に。
あとは、ネイティブプログラムはコンソールプログラムにして、標準入出力でやりとりするとか。
ですかね。

# re: CodeZineに書きました。 2010/01/28 3:44

「足して2で割り損ねた」
冒頭から素敵ですw

さておき、ウチでも32/64切り替えはT.Hiraseさんとたぶん同様で、
hoge_32.dll、hoge_64.dll、
ついでに開発中はデバッグ版も hoge_32d.dll、hoge_64d.dll
とかC++/CLIで作っておいて、
.net側アプリの実行時に環境しらべて動的にリンクするようにしていました。

…今それをやっていた時のソース見たら…

switch(IntPtr.Size){ ... }
とかやって32と64を判定、
デバッグ版を使うかは
#if DEBUG ... #endif
とやってAssembly.LoadFromするファイル名を決定していました。

# re: CodeZineに書きました。 2010/01/28 8:09 επιστημη

んむ、実行時に32/64判定して動的にloadするか、あるいはinstall時にぶっこむDLL(アセンブリ)を選択するか。

Fat-binaryてな手段はないのかしら。
32/64双方のDLLをマージして一本のDLLに仕立て、load時にどっちかが適切に選択される、みたいな。

# re: CodeZineに書きました。 2010/01/28 13:09 とっちゃん

OSが32/64は、シームレスに切り替わらないので
実行時判定ではなく、インストールするファイルをどっちにするか?で
決めるのが、いちばんスマートかつ正規の手段です。

そのためにセットアップという技術があるんですからwww

# re: CodeZineに書きました。 2010/01/28 13:25 επιστημη

> インストールするファイルをどっちにするか

ですかー。

いやさ、「.NETは.exeと.dllだけコピれば動くヨー」みたいなとこがあるやないですか。
誤解(拡大解釈)かもしれんけど。

# re: CodeZineに書きました。 2010/01/28 15:47 とっちゃん

.NET は!ですよねw
C++/CLI は、純粋な .NET アセンブリにはならないので Any CPU がないw
だから、コピーすれば動くとはならないんですよねーw

# re: CodeZineに書きました。 2010/01/29 7:33 T.Hirase

でも、Macでいえば、UniversalBinary的なものとかがあれば
できるんですよねぇ・・・・。

# re: CodeZineに書きました。 2010/01/29 11:23 とっちゃん

Windows の場合、MACとは異なり、64bit でも、IA64があります。
なので、UniversalBinary的なものは作れないんじゃないかなぁ?
Linuxができていないように。。。

# re: CodeZineに書きました。 2010/01/29 12:05 επιστημη

> IA64があります。

ねーよ(めったにw)

# re: CodeZineに書きました。 2010/01/29 13:12 とっちゃん



HPが出してますよ!
店頭では見た事ありませんがw<売ってねーよ!

# re: CodeZineに書きました。 2010/01/29 14:40 επιστημη

> 売ってねーよ!
買えねーのかよ!

# re: CodeZineに書きました。 2010/01/29 15:24 とっちゃん

今は個人では買えないと思いますよw

たぶん。。。ですがw

# re: CodeZineに書きました。 2010/01/29 16:18 επιστημη

個人では買えないのかー

「お代官様、これがご禁制の'いたにうむ'でございます」
「ふっふっふ。えちぴ屋、おまえもワルよのぅ...」

# 天井裏に弥七。お銀姐さんは入浴中。

# re: CodeZineに書きました。 2010/02/09 20:27 えちぜん

記事を参考に、早速ICUを使っていたのですが、Linuxでは変換後の文字列を出力できませんでした。

ICUのUCharは16bitですがLinuxではwchar_tは4Byteとなっているのが原因ではないかと思い、現在検証中です。
(Windowsではwchar_tは2Byte)

# re: CodeZineに書きました。 2010/02/09 22:13 επιστημη

あー...

<ustdio.h> for C
<ustream.h> for C++

が用意されてます。こいつらでなんとかなるかもです。
http://icu-project.org/apiref/icu4c/

# FMPmmtDYhaA 2014/07/19 2:43 http://crorkz.com/

vV8vNA Thanks for the blog post.Much thanks again.

タイトル
名前
URL
コメント