おそらく、.NET開発でデファクトスタンダードに最も近いであろう
C++/CLIについて語ろうぜ!
このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。
.NETのクラスライブラリの使い方といった質問は Visual Studioスレにお願いします。
前スレッドはこちら
くだすれC++/CLI(初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1142144110/l1
dat落ち姉妹スレ
C++/CLI part3
http://pc12.2ch.net/test/read.cgi/tech/1206447234/l1
http://pc11.2ch.net/test/read.cgi/tech/1142147319/l1
http://pc8.2ch.net/test/read.cgi/tech/1126450441/l1
managed C++ やろうぜ!! 002
http://pc8.2ch.net/test/read.cgi/tech/1139043535/l1
くだすれC++/CLI(初心者用)part2
■ このスレッドは過去ログ倉庫に格納されています
2010/03/15(月) 09:41:19
2./1256645713/662
2010/03/15(月) 09:45:45 ドキュメントの MSDN には、System::String(SByte*); て書いてあるけども、
System::String(char*); が正解ってことか?
それとも SByte が signed char ではなくて char てこと?それは無いような気が。
ちなみに、使ってる教科書のサンプルプログラムは8bitでは char* 配列を渡してる。
System::String(char*); が正解ってことか?
それとも SByte が signed char ではなくて char てこと?それは無いような気が。
ちなみに、使ってる教科書のサンプルプログラムは8bitでは char* 配列を渡してる。
2010/03/17(水) 19:44:10
厳密名の付け方が分かりません
検索しても意味不明なものしか引っかからない
検索しても意味不明なものしか引っかからない
4デフォルトの名無しさん
2010/03/17(水) 21:02:17 開発でつかわれてるのかな?
C++/CLIって。
C++/CLIって。
2010/03/17(水) 21:41:39
必要なら使われるだろ。
だからなんなんだ?
だからなんなんだ?
2010/03/17(水) 22:37:29
2010/03/17(水) 22:45:13
というか必要な時だけ最小限使うもの
基本的に使わないほうがいい
基本的に使わないほうがいい
2010/03/18(木) 00:33:17
最近妙にお気に入り
2010/03/18(木) 09:03:31
Managed C++でさえ一部で使われていた。
2010/03/22(月) 19:23:41
フォームの中にあるテキストボックスの内容をmainとか関数とかから書き換えたいんだけど
どんな方法があるでしょうか?
今までは強引にチェックボックスにチェックが入ると
void test(System::Windows::Forms::TextBox^ tb_log_view);
こんな感じの関数呼び出してTextBoxを強引にわたして指定の処理して
テキストボックスにメッセージ表示させてたんだけど
何せ使い勝手が悪いので・・・
どんな方法があるでしょうか?
今までは強引にチェックボックスにチェックが入ると
void test(System::Windows::Forms::TextBox^ tb_log_view);
こんな感じの関数呼び出してTextBoxを強引にわたして指定の処理して
テキストボックスにメッセージ表示させてたんだけど
何せ使い勝手が悪いので・・・
2010/03/25(木) 01:29:18
String^使えばいいんちゃう?
12デフォルトの名無しさん
2010/03/25(木) 18:00:01 今、「Cで書かれたライブラリをC++/CLIでラッピング(DLL化)し、
C#で使おう」という目的に向けて、Cのライブラリをラッピング中ですなのですが、構造体で悩んでます。
C++/CLI側でC#側に「構造体の配列」を返す関数が見せてるのですが、実行すると思ったように動きません。
C++/CLI側
[宣言]
public ref struct SampleStruct {
static CHAR cUpdate;
};
static array<SampleStruct^>^ pstSample = gcnew array<SampleStruct^>(10);
関数
array<SampleStruct^>^ hogehoge(){
if(pstSample[0] == nullptr ){
for(int i=0; i<10; i++ ){
pstSample[i] = gcnew (SampleStruct);
}
}
pstSample[2]->cUpdate = 2;
return pstSample;
}
C#側
SampleStruct[] stTest = new SampleStruct[10];
stTest = LIBSAMPLE.hogehoge();
ここで、stTest[0].cUpdateからstTest[9].cUpdateまでを見ると
全部2が入っております。(本当は[2].cUpdateだけ2が入っていて欲しい)
どこが原因か分かりますでしょうか?
OS:XP
環境:VS2008 ExpressのC++版とC#版を使ってます。
C#で使おう」という目的に向けて、Cのライブラリをラッピング中ですなのですが、構造体で悩んでます。
C++/CLI側でC#側に「構造体の配列」を返す関数が見せてるのですが、実行すると思ったように動きません。
C++/CLI側
[宣言]
public ref struct SampleStruct {
static CHAR cUpdate;
};
static array<SampleStruct^>^ pstSample = gcnew array<SampleStruct^>(10);
関数
array<SampleStruct^>^ hogehoge(){
if(pstSample[0] == nullptr ){
for(int i=0; i<10; i++ ){
pstSample[i] = gcnew (SampleStruct);
}
}
pstSample[2]->cUpdate = 2;
return pstSample;
}
C#側
SampleStruct[] stTest = new SampleStruct[10];
stTest = LIBSAMPLE.hogehoge();
ここで、stTest[0].cUpdateからstTest[9].cUpdateまでを見ると
全部2が入っております。(本当は[2].cUpdateだけ2が入っていて欲しい)
どこが原因か分かりますでしょうか?
OS:XP
環境:VS2008 ExpressのC++版とC#版を使ってます。
2010/03/25(木) 18:34:20
> static CHAR cUpdate;
Cさえ理解していないのがよくわかる。
Cさえ理解していないのがよくわかる。
2010/03/25(木) 18:45:45
うわ・・・・・
泣ける・・・・orz
回答有難うです
泣ける・・・・orz
回答有難うです
2010/03/25(木) 18:53:51
突っ込みどころや怪しい箇所が多すぎて、どうしたいかが見えてこない(笑
配列はC++/CLIでアロケーションしていいのかとか。
C#でいう構造体はvalue class (or struct)であって、ref structはクラスだけどどっちにしたいのとか。
配列はC++/CLIでアロケーションしていいのかとか。
C#でいう構造体はvalue class (or struct)であって、ref structはクラスだけどどっちにしたいのとか。
1612,14
2010/03/25(木) 19:13:48 目的は、「Cで書かれたライブラリをC#で使う」事なのですが、
現状は、Cの方には手を加えないように、やる方法として、C++/CLIで
ラッピングするという手段があるという事なので、作業している次第。
そこで、構造体のポインタを戻り値としている関数はどう扱えば?と
思ってましたら、
http://ap.atmarkit.co.jp/bbs/core/fdotnet/17380
このような話をみつけたので、まずはref structでやってるという状況です。
現状は、Cの方には手を加えないように、やる方法として、C++/CLIで
ラッピングするという手段があるという事なので、作業している次第。
そこで、構造体のポインタを戻り値としている関数はどう扱えば?と
思ってましたら、
http://ap.atmarkit.co.jp/bbs/core/fdotnet/17380
このような話をみつけたので、まずはref structでやってるという状況です。
2010/03/25(木) 20:50:34
CのライブラリだったらC++/CLIなんか使わずにC#でDllImportすればいいような
1812,14
2010/03/26(金) 09:55:14 >>17
説明不足でした。
(当然の疑問ですよね)
そのCのライブラリというのが、元がスタティックしか考慮されておらず、
DLL用にはなってなく(__declspec(dllexport)のような記載は一切なし)、
選択肢として
1 Cのソースをdll対応に修正(__declspecを全関数に追加)
2 元のCには手を加えず、新しくラッパーを作る
があり、今後もCの方は勝手にバージョンが上がっていくので、
それなら、元のソースに手を加えない方向でやろうとなった次第です。
説明不足でした。
(当然の疑問ですよね)
そのCのライブラリというのが、元がスタティックしか考慮されておらず、
DLL用にはなってなく(__declspec(dllexport)のような記載は一切なし)、
選択肢として
1 Cのソースをdll対応に修正(__declspecを全関数に追加)
2 元のCには手を加えず、新しくラッパーを作る
があり、今後もCの方は勝手にバージョンが上がっていくので、
それなら、元のソースに手を加えない方向でやろうとなった次第です。
2010/03/26(金) 10:26:08
だからってそのラッパーをC++/CLIで書く必要はないだろ
Cで薄ーいラッパー書いて普通のネイティブDLLとしてコンパイルすればおk
C++のライブラリとなると面倒だけどそうでないならC++/CLIはできるだけ避けたほうが賢明
Cで薄ーいラッパー書いて普通のネイティブDLLとしてコンパイルすればおk
C++のライブラリとなると面倒だけどそうでないならC++/CLIはできるだけ避けたほうが賢明
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 地震 [Hitzeschleier★]
- 親父が同級生(クラスの真面目委員長JK)の母親と結婚した。ウソじゃない。事実なんだ
- (*´ω`*)本日のお夜食は──
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 日本で全く売れてないけど海外でかなり売れてる日本企業 ←こういうの見てどう思う?
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 日本って中国と戦争したら絶対負けるのに何でイキってんの?
