とりあえずこんなんなりやした:
namespace Orient {
public ref class StringUtilA {
public:
StringUtilA();
std::string str(Sysetm::String^ str); // String^ → std::string
const char* c_str(System::String^ str): // String^ → const char*
};
public ref class StringUtilW {
public:
StringUtilA();
std::wstring str(Sysetm::String^ str); // String^ → std::wstring
const wchar_t* c_str(System::String^ str): // String^ → const char*
};
}
ちょいちょいとCLR-DLLこしらえて呼んでみた…
するってーと c_str はいいんだけど
std::string/wstring を返す str() は
「error C3767: 'Orient::StringUtilW::str': 候補の関数はアクセス可能ではありません。」
とか怒られちゃいます。
オブジェクト・ブラウザでは見えてるのにのに…そんなもんすか??
[2006.03.19] 追記
NyaRuRuさんに教せぇてもろたVSUGログのなかに
#pragma make_public(うにゃうにゃ)
すると'うにゃうにゃ'を公開できるとな。やってみた。
#pragma make_public(std::string)
#pragma make_public(std::wstring)
error C2158: #pragma make_public ディレクティブは、現在テンプレートでない
ネイティブの型にのみサポートされています
…貴っ様ぁ、締め殺したろかいね!