おそらく、.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
610デフォルトの名無しさん
2012/11/01(木) 18:53:57.94 パコパコ
611デフォルトの名無しさん
2012/11/01(木) 21:43:12.40 問題はMSが途中で放り投げないのはどれかということだよ
612デフォルトの名無しさん
2012/11/01(木) 21:57:19.02 C++資産の活用という目的があるから/CLIも/CXも無くなることはないだろうけど
/CXも/CLIみたいにIDEサポートがなおざりになっていく可能性が高いな
/CLIも誕生当初は.NET開発の本命とか言われてたんだし
/CXも/CLIみたいにIDEサポートがなおざりになっていく可能性が高いな
/CLIも誕生当初は.NET開発の本命とか言われてたんだし
613デフォルトの名無しさん
2012/11/01(木) 22:01:57.86 全部放り投げて新たな言語開発したりしてw
614デフォルトの名無しさん
2012/11/01(木) 22:12:33.37 MSって実験的な技術でも最初から気合入れてしっかり使えるものを出してくるから厄介なんだよね
新技術出してすぐ放り投げるのはGoogleのほうがよっぽど酷いけど
あっちは一目見て「ああこれダメだわ」とわかるからな
新技術出してすぐ放り投げるのはGoogleのほうがよっぽど酷いけど
あっちは一目見て「ああこれダメだわ」とわかるからな
615デフォルトの名無しさん
2012/11/18(日) 18:32:24.63 hackとproductの文化的な違いでしょ
MSのは、OSSのフリーライダーに仕方なく合わせてきた感がタップリ
過去の因縁からしてMSの製品は使わないといった派閥は今日でも現存する
MSのは、OSSのフリーライダーに仕方なく合わせてきた感がタップリ
過去の因縁からしてMSの製品は使わないといった派閥は今日でも現存する
616デフォルトの名無しさん
2012/11/23(金) 09:55:41.06 共産主義の理想はOSSのみが実現できる
617デフォルトの名無しさん
2012/11/23(金) 09:57:46.75 OSSと共産主義が関連あるのは本当?FSFじゃなくて?
>>617
共産主義の定義による、スターリン以前か以後かどっち?
共産主義の定義による、スターリン以前か以後かどっち?
619デフォルトの名無しさん
2012/11/23(金) 18:05:53.27 C++で作られた.LIBなファイルをC++/CLIから呼び出すには何か注意点ありまか?
いま、ビルドはできるけどランタイムの初期化?で落ちてしまいます
いま、ビルドはできるけどランタイムの初期化?で落ちてしまいます
620デフォルトの名無しさん
2012/11/23(金) 23:14:32.20 visual studio でc++ やってるけど
#include "stdafx.h"
#include "stdio.h"
#using <System.Dll>
#using <System.Data.Dll>
#using <System.Xml.Dll>
#include <string>
using namespace System;
using namespace System::Data;
using namespace System::Xml;
using namespace System::Collections;
using namespace System::Data::SqlClient;
int main(void)
{
String^ str;
String^ str200;
char* comp[100] ;
SqlConnection^ Conn = gcnew SqlConnection("Password=apple;User ID=sa;Initial Catalog=master200;Data Source=.\\sql2031");
Conn->Open();
int t;
str = "Select * FROM Customers";
SqlCommand^ sqlCmd = gcnew SqlCommand(str,Conn);//
SqlDataReader^ dr= sqlCmd->ExecuteReader ();
while( dr->Read() )
{ str200=dr["CompanyName"]->ToString();
comp[t] = (char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str200).ToPointer();
こっから 表示ができない。
printf("<TD><input type='text' name='comp' size='30' value='"+comp[t]+"' ></TD>" );
#include "stdafx.h"
#include "stdio.h"
#using <System.Dll>
#using <System.Data.Dll>
#using <System.Xml.Dll>
#include <string>
using namespace System;
using namespace System::Data;
using namespace System::Xml;
using namespace System::Collections;
using namespace System::Data::SqlClient;
int main(void)
{
String^ str;
String^ str200;
char* comp[100] ;
SqlConnection^ Conn = gcnew SqlConnection("Password=apple;User ID=sa;Initial Catalog=master200;Data Source=.\\sql2031");
Conn->Open();
int t;
str = "Select * FROM Customers";
SqlCommand^ sqlCmd = gcnew SqlCommand(str,Conn);//
SqlDataReader^ dr= sqlCmd->ExecuteReader ();
while( dr->Read() )
{ str200=dr["CompanyName"]->ToString();
comp[t] = (char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str200).ToPointer();
こっから 表示ができない。
printf("<TD><input type='text' name='comp' size='30' value='"+comp[t]+"' ></TD>" );
621デフォルトの名無しさん
2012/11/23(金) 23:16:25.59 システム ストリング から苦労して
char* 変換できたけど
どうやってstringf できるか教えてほしい。
char* 変換できたけど
どうやってstringf できるか教えてほしい。
622デフォルトの名無しさん
2012/11/24(土) 09:22:28.68 あっさりできました。
printfやめたるだけだった。
Console::Write("<TD><input type='text' name='comp' size='30' style='background: #fafad2; font-weight: bold ;' value='"+dr["CompanyName"]+"' ></TD>" );
ストリング変換とかキャラ変換とか一切不要でした。
printfやめたるだけだった。
Console::Write("<TD><input type='text' name='comp' size='30' style='background: #fafad2; font-weight: bold ;' value='"+dr["CompanyName"]+"' ></TD>" );
ストリング変換とかキャラ変換とか一切不要でした。
623デフォルトの名無しさん
2012/11/24(土) 10:22:23.19 >>622
死ね
死ね
624デフォルトの名無しさん
2012/11/24(土) 11:28:11.23 >>623
なんでそういうこというんですか?
私はあなたが、ガソリンをかぶって、
火をつけて焼身自殺することを望みます。
2ちゃんねる ニュース板+で
焼身自殺した人のニュースみたら、凄い悲しみます。
でも後悔はしないです。
なんでそういうこというんですか?
私はあなたが、ガソリンをかぶって、
火をつけて焼身自殺することを望みます。
2ちゃんねる ニュース板+で
焼身自殺した人のニュースみたら、凄い悲しみます。
でも後悔はしないです。
625デフォルトの名無しさん
2012/11/24(土) 22:00:38.23 内閣府は24日、「外交に関する世論調査」結果を発表した。
中国に「親しみを感じない」と答えた人の割合は2011年の前回調査比9・2ポイント増の80・6%で、
1975年の調査開始以降で最高となった。
韓国に「親しみを感じない」という人も23・7ポイント増の59%と急増し、過去2番目に高い数字となった。
外務省は「尖閣諸島(沖縄県)や竹島(島根県)をめぐる対立が、中国や韓国に対する国民感情の悪化につながった」と分析している。
調査は9月27日〜10月7日にかけ、全国の成人男女3000人を対象に行い、1838人(61・3%)が回答した。
日中関係が「良好だと思わない」との回答は16・5ポイント増の92・8%、
日韓関係が「良好だと思わない」も42・8ポイント増の78・8%に達し、ともに過去最高となった。
中国との関係では、今年9月の尖閣諸島国有化をきっかけに中国各地で反日デモが相次ぎ、
現地の日系企業が焼き打ちや略奪に遭ったことなどが影響したとみられる。
「韓流ブーム」などを通じ近年は良好だった韓国との関係についても、
今年8月の韓国の李明博(イミョンバク)大統領による竹島上陸が「冷や水」を浴びせた格好だ。
http://www.yomiuri.co.jp/national/news/20121124-OYT1T00811.htm?from=ylist
中国に「親しみを感じない」と答えた人の割合は2011年の前回調査比9・2ポイント増の80・6%で、
1975年の調査開始以降で最高となった。
韓国に「親しみを感じない」という人も23・7ポイント増の59%と急増し、過去2番目に高い数字となった。
外務省は「尖閣諸島(沖縄県)や竹島(島根県)をめぐる対立が、中国や韓国に対する国民感情の悪化につながった」と分析している。
調査は9月27日〜10月7日にかけ、全国の成人男女3000人を対象に行い、1838人(61・3%)が回答した。
日中関係が「良好だと思わない」との回答は16・5ポイント増の92・8%、
日韓関係が「良好だと思わない」も42・8ポイント増の78・8%に達し、ともに過去最高となった。
中国との関係では、今年9月の尖閣諸島国有化をきっかけに中国各地で反日デモが相次ぎ、
現地の日系企業が焼き打ちや略奪に遭ったことなどが影響したとみられる。
「韓流ブーム」などを通じ近年は良好だった韓国との関係についても、
今年8月の韓国の李明博(イミョンバク)大統領による竹島上陸が「冷や水」を浴びせた格好だ。
http://www.yomiuri.co.jp/national/news/20121124-OYT1T00811.htm?from=ylist
626デフォルトの名無しさん
2012/11/25(日) 15:24:56.72 C++/CLIのクラスライブラリのプロジェクトが2つ(AとB)あります。
BはAを使うので、Bのプロジェクトの設定でAを参照するようにしています。
Aのビルドは問題なくできますが、Bをビルドすると
LNK2020: 未解決のトークン (06000022) <Aにあるクラスの静的メソッド名>
と言われます。
何か他に設定が必要でしょうか。教えてください。
BはAを使うので、Bのプロジェクトの設定でAを参照するようにしています。
Aのビルドは問題なくできますが、Bをビルドすると
LNK2020: 未解決のトークン (06000022) <Aにあるクラスの静的メソッド名>
と言われます。
何か他に設定が必要でしょうか。教えてください。
627デフォルトの名無しさん
2012/11/25(日) 15:46:03.82 http://msdn.microsoft.com/ja-jp/library/b57tw91b(v=vs.80).aspx
このエラーを解決するには、次のどちらかの操作を実行します。
欠けている関数またはデータを定義します。
欠けている関数またはデータが既に定義されているオブジェクト ファイルあるいはライブラリを取り込みます。
このエラーを解決するには、次のどちらかの操作を実行します。
欠けている関数またはデータを定義します。
欠けている関数またはデータが既に定義されているオブジェクト ファイルあるいはライブラリを取り込みます。
628デフォルトの名無しさん
2012/11/26(月) 22:01:25.29 C++でのオブザーバーパターンの実装例を教えていただけますでしょうか
色々検索したのですが見つかりませんでした
色々検索したのですが見つかりませんでした
629デフォルトの名無しさん
2012/11/26(月) 22:05:15.44 C++/CLIならそんなもん要らん。言語に組み込まれている。
イベントを使え。
イベントを使え。
630デフォルトの名無しさん
2012/11/26(月) 22:10:44.54 オブザーバーパターンの実装が分からんとか
さすがにC++/CLIを使う資格がないと言わざるを得ない
C#かC++からやれ
さすがにC++/CLIを使う資格がないと言わざるを得ない
C#かC++からやれ
631デフォルトの名無しさん
2012/11/26(月) 22:35:48.50 obsecureですね
わかります
わかります
632デフォルトの名無しさん
2012/11/28(水) 21:17:29.45 C++/CLIみたいな方言をやる意味あるのか?
633デフォルトの名無しさん
2012/11/28(水) 22:48:53.31 しがらみってもんがあってな
634デフォルトの名無しさん
2012/11/28(水) 23:56:16.87 2012で..netのウィンドウがある普通のアプリが
作れなくなったのだったか?
作れなくなったのだったか?
635デフォルトの名無しさん
2012/11/28(水) 23:58:00.13 プロジェクトテンプレートが無くなっただけで、WinFormsの項目テンプレートはある
MSとしてはフェードアウトさせたいんだろうな
MSとしてはフェードアウトさせたいんだろうな
636デフォルトの名無しさん
2013/01/27(日) 04:17:32.21 C++/CLI勉強中なんですけど、なんでpropertyで2回以上も型を書かせるのはなんで?
property System::Collections::Generic::IEnumerable<System::String^>^ Kuso
{
System::Collections::Generic::IEnumerable<System::String^>^ get();
void set(System::Collections::Generic::IEnumerable<System::String^>^ value);
}
と書くのは気が狂うんですけど。それぞれの型が異なることってあるの?↓でいいじゃん。
property System::Collections::Generic::IEnumerable<System::String^>^ Kuso
{
auto get();
void set(auto value);
}
てかこのスレ2ヶ月間も書き込みがないってどういうことなの。あっ…(察し
property System::Collections::Generic::IEnumerable<System::String^>^ Kuso
{
System::Collections::Generic::IEnumerable<System::String^>^ get();
void set(System::Collections::Generic::IEnumerable<System::String^>^ value);
}
と書くのは気が狂うんですけど。それぞれの型が異なることってあるの?↓でいいじゃん。
property System::Collections::Generic::IEnumerable<System::String^>^ Kuso
{
auto get();
void set(auto value);
}
てかこのスレ2ヶ月間も書き込みがないってどういうことなの。あっ…(察し
637デフォルトの名無しさん
2013/01/27(日) 09:57:28.12 便利に普通に使う言語じゃねえからなこれ
たかが.NETとネイティブコードを橋渡しする非標準拡張のために
必要以上に言語に手を入れたくなかったんだろ
たかが.NETとネイティブコードを橋渡しする非標準拡張のために
必要以上に言語に手を入れたくなかったんだろ
638デフォルトの名無しさん
2013/01/27(日) 15:02:59.86 printf("%x", data);
すると
出力が
ffffff93
や
ffffff94
などになるdataという名前の変数に対して演算をして
結果をdata2に格納し、
printf("%x", data2);
の出力が必ず
ffffff90
になるようにしたい
(16進数表示した時の下一桁以外は変えず、下一桁だけを必ず0にしたい)のですが、
dataに対してどのような演算を行えばよいでしょうか。
すると
出力が
ffffff93
や
ffffff94
などになるdataという名前の変数に対して演算をして
結果をdata2に格納し、
printf("%x", data2);
の出力が必ず
ffffff90
になるようにしたい
(16進数表示した時の下一桁以外は変えず、下一桁だけを必ず0にしたい)のですが、
dataに対してどのような演算を行えばよいでしょうか。
639デフォルトの名無しさん
2013/01/27(日) 15:40:23.86 >>638
ビット演算でANDする。
ビット演算でANDする。
640デフォルトの名無しさん
2013/01/27(日) 17:35:27.93 >636
typedefという便利な機能があってのう…(しかし名前空間が汚染される)
typedefという便利な機能があってのう…(しかし名前空間が汚染される)
641デフォルトの名無しさん
2013/01/27(日) 17:58:33.08 マクロの出番だよ、マクロの出番
642デフォルトの名無しさん
2013/01/28(月) 15:00:14.29 C++、C#どっちもできて、C++でGUIを簡単に作りたいっていうのには向いてるよね
SDKがC++でもC#どちらでも使えるし、守備範囲が広い
ただその為に変数の型変換とかちょっとめんどくさいこと調べないといけないけど
SDKがC++でもC#どちらでも使えるし、守備範囲が広い
ただその為に変数の型変換とかちょっとめんどくさいこと調べないといけないけど
643デフォルトの名無しさん
2013/01/31(木) 00:50:44.45 酷い釣りだ…C++に見えてその実全く違う言語じゃねぇか。
644デフォルトの名無しさん
2013/01/31(木) 07:09:42.74 顧客が本当に望んでいたもの: デスクトップ向けC++/CX
645デフォルトの名無しさん
2013/01/31(木) 08:33:51.13646デフォルトの名無しさん
2013/02/20(水) 15:07:47.77 //homepage3.nifty.com/ishidate/vcpp10_g8/vcpp10_g8.html
このHPを見て勉強しているんですが
「グローバルに下記を設定しておく。」の範囲ってどこからどこまででしょうか?
このHPを見て勉強しているんですが
「グローバルに下記を設定しておく。」の範囲ってどこからどこまででしょうか?
647デフォルトの名無しさん
2013/02/20(水) 15:11:06.36 htm じゃないか
648デフォルトの名無しさん
2013/02/20(水) 15:15:14.41649デフォルトの名無しさん
2013/02/20(水) 15:26:26.90 staticなんだし適当にやってみりゃよかろう
WIDTHとHEIGHTはどこでもいいしarray部分はclass Form1に入れたら
とりあえず動いたぞ、面白いなこれw
WIDTHとHEIGHTはどこでもいいしarray部分はclass Form1に入れたら
とりあえず動いたぞ、面白いなこれw
650デフォルトの名無しさん
2013/02/20(水) 15:33:46.31 何の役に立つのかな
651デフォルトの名無しさん
2013/02/20(水) 15:34:48.07652デフォルトの名無しさん
2013/02/20(水) 15:38:18.30 エスパー希望ですねわかります
653デフォルトの名無しさん
2013/02/20(水) 15:54:18.59 うまくいかないのは実行時なのかコンパイル時なのか
うまくいかないと判断したのはどこ?
うまくいかないと判断したのはどこ?
654デフォルトの名無しさん
2013/02/20(水) 17:02:18.31 初心者なので…すいません
実行するとエラー100いくつとかはくんですよね
範囲設定間違ってるのか、何が原因なのかわかんないです。。。
実行するとエラー100いくつとかはくんですよね
範囲設定間違ってるのか、何が原因なのかわかんないです。。。
655デフォルトの名無しさん
2013/02/20(水) 17:07:17.35 100いくつって数かよ
もしそうならコンパイル時だろうし
全角スペース入ったままなんだろ
置換で半角に変えとけ
もしそうならコンパイル時だろうし
全角スペース入ったままなんだろ
置換で半角に変えとけ
656デフォルトの名無しさん
2013/02/20(水) 17:26:40.56 全角→半角やってもダメみたいです…
もし成功した方いたらそのプロジェクトファイルうpしていただけませんか?
どなたかお願いしますううう
もし成功した方いたらそのプロジェクトファイルうpしていただけませんか?
どなたかお願いしますううう
657デフォルトの名無しさん
2013/02/20(水) 17:30:18.61 ダメみたいとか、自分の状況を隠し続ける人に言えることは何もない
658デフォルトの名無しさん
2013/04/17(水) 21:57:33.57 等高線グラフを表示させたいのですが、
手段が見つかりません。
3D点(x,y,z)の点(データ)×数万個を線で結びつけて、色付けしたものです。
チャートコントロール(mschar)では等高線をサポートしておらず、実現できません。
System::Windows::Forms::DataVisualization::Charting::Chart
どなたかご教授くださいませ!
[環境]
visual c++ 2008 express
vs2012へ更新検討中
手段が見つかりません。
3D点(x,y,z)の点(データ)×数万個を線で結びつけて、色付けしたものです。
チャートコントロール(mschar)では等高線をサポートしておらず、実現できません。
System::Windows::Forms::DataVisualization::Charting::Chart
どなたかご教授くださいませ!
[環境]
visual c++ 2008 express
vs2012へ更新検討中
659デフォルトの名無しさん
2013/04/17(水) 22:02:56.86 そういうのは可視化ツール使えよ
ParaViewとか
ParaViewとか
660デフォルトの名無しさん
2013/04/17(水) 22:10:53.92 Gnuplotでも使えば一瞬
自分でそういうの書くのは手段が目的化してるバカ
自分でそういうの書くのは手段が目的化してるバカ
661デフォルトの名無しさん
2013/04/17(水) 23:21:24.73 マルチ
662デフォルトの名無しさん
2013/06/01(土) 08:15:06.30 ちょっと教えてください
自分は独学でC/C++,C#と、まぁC系の勉強をして、ソフトも作れるようにもなりました。
で、就職活動してたんですが、年齢のせいで、資格か業務経験が無いとって感じで、どの企業にもスルーされてきました。
で、今、職業訓練学校でJAVA及びAndroidアプリの作製っていうコースにかよってて
さすがに、まぁ、昔、独習JAVAって本でさらっとJAVAを勉強してた部分もあったりでJAVA自体は
勉強するというより(現在は、まだAndroid開発の講義じゃなくてJAVAの講義)今の、講師からも言われたんですが
「〜(自分)さんは、もうJAVAの部分は解かってるだろうから、色々と予習していったら良いですよ。」と言われてる状態です。
さて、ここからが本題ですが、JAVAのソースを見てるとnativeっていう修飾子があって文字通りnativeで作られた
メソッドがあったんです。で、JAVAのVMもどうやらCで書かれてるようなのがソース見てわかりました。
そしてCLIですが、C++で組んだアンマナージドなクラスライブラリ等をC#で使う時ってなんかしらの修飾子
ってあるんですか?一度実験でアンマネージドなC++のクラス作ってマネージド(CLI)なクラスの中にほりこんだら
[そりゃ無理じゃ、ポインタとして宣言しろ!このカスが!]って嘘だけど、まぁ、こんな感じのエラーがでたんです。
C#側でwin32apiを使いったかったらdllのアトリビュート文を書けば良いんですけど
クラスはどうしたら良いんでしょうか。
どなたかこうすれば良いという方法があればご教示ください。
自分は独学でC/C++,C#と、まぁC系の勉強をして、ソフトも作れるようにもなりました。
で、就職活動してたんですが、年齢のせいで、資格か業務経験が無いとって感じで、どの企業にもスルーされてきました。
で、今、職業訓練学校でJAVA及びAndroidアプリの作製っていうコースにかよってて
さすがに、まぁ、昔、独習JAVAって本でさらっとJAVAを勉強してた部分もあったりでJAVA自体は
勉強するというより(現在は、まだAndroid開発の講義じゃなくてJAVAの講義)今の、講師からも言われたんですが
「〜(自分)さんは、もうJAVAの部分は解かってるだろうから、色々と予習していったら良いですよ。」と言われてる状態です。
さて、ここからが本題ですが、JAVAのソースを見てるとnativeっていう修飾子があって文字通りnativeで作られた
メソッドがあったんです。で、JAVAのVMもどうやらCで書かれてるようなのがソース見てわかりました。
そしてCLIですが、C++で組んだアンマナージドなクラスライブラリ等をC#で使う時ってなんかしらの修飾子
ってあるんですか?一度実験でアンマネージドなC++のクラス作ってマネージド(CLI)なクラスの中にほりこんだら
[そりゃ無理じゃ、ポインタとして宣言しろ!このカスが!]って嘘だけど、まぁ、こんな感じのエラーがでたんです。
C#側でwin32apiを使いったかったらdllのアトリビュート文を書けば良いんですけど
クラスはどうしたら良いんでしょうか。
どなたかこうすれば良いという方法があればご教示ください。
663デフォルトの名無しさん
2013/06/01(土) 09:35:33.80 文章にイラン部分が多すぎ。人生相談の板は別にあるぞ
質問は的確に
質問は的確に
664662
2013/06/01(土) 10:22:22.81 >>663
そやね、確かに質問がまとまってなかったは。
要は、普通にC++でクラスを作ります(例えばTestっていうクラス)。
それをC#内で使おうと思っても、無理になります。
で、その仲介役としてCLIを使うとします。
その時にCLIで作ったマネージドなクラス内でTestクラスのインスタンスを生成するには
どうしたら良いですか。という質問です。
そやね、確かに質問がまとまってなかったは。
要は、普通にC++でクラスを作ります(例えばTestっていうクラス)。
それをC#内で使おうと思っても、無理になります。
で、その仲介役としてCLIを使うとします。
その時にCLIで作ったマネージドなクラス内でTestクラスのインスタンスを生成するには
どうしたら良いですか。という質問です。
665デフォルトの名無しさん
2013/06/01(土) 11:56:57.18666デフォルトの名無しさん
2013/06/01(土) 12:11:21.91 gcnew じゃなくて new してポインタを受けるだけじゃうまくいかなかったのか?
ちなみにマネージドとアンマネージドの世界の行ったり来たりはオーバーヘッドすごいから
小さなメソッドをちまちま呼び出すような処理はやめておけ。
ちなみにマネージドとアンマネージドの世界の行ったり来たりはオーバーヘッドすごいから
小さなメソッドをちまちま呼び出すような処理はやめておけ。
667662
2013/06/01(土) 12:13:59.07 >>665
あ、そっか、たしかにCOMコンポーネントは呼べるね。
でも、C#で以前(何年前かは忘れた)Excel呼び出して
C#側で、Excel終了さしたのにプロセス見たら
残ってて、こりゃあかんと思ってExcel呼び出すのは
やめたんだけど、今のVSは、そこらへんもちゃんとしょりしてるのかな
俺がもってるVSって2005なんでね
あ、そっか、たしかにCOMコンポーネントは呼べるね。
でも、C#で以前(何年前かは忘れた)Excel呼び出して
C#側で、Excel終了さしたのにプロセス見たら
残ってて、こりゃあかんと思ってExcel呼び出すのは
やめたんだけど、今のVSは、そこらへんもちゃんとしょりしてるのかな
俺がもってるVSって2005なんでね
668デフォルトの名無しさん
2013/06/01(土) 12:22:18.97 >>667
ぼろいPCならアプリ終了しても暫くプロセス残ってるなんて普通にあると思うが
ぼろいPCならアプリ終了しても暫くプロセス残ってるなんて普通にあると思うが
669デフォルトの名無しさん
2013/06/01(土) 14:37:10.11 COMの場合それとは違って寿命管理の話だな
670デフォルトの名無しさん
2013/06/01(土) 14:39:16.16671デフォルトの名無しさん
2013/06/02(日) 00:02:02.93 こんなかんじかな、Disposableにしてるから
deleteのタイミングが重要なときはDisposeすればよい
ref class M2 {
N1 *n;
public:
M2() { n = new N1; }
~M2() { delete n; }
!M2() { delete n; }
};
deleteのタイミングが重要なときはDisposeすればよい
ref class M2 {
N1 *n;
public:
M2() { n = new N1; }
~M2() { delete n; }
!M2() { delete n; }
};
672デフォルトの名無しさん
2013/06/02(日) 10:25:59.95 CLI用スマポを作る
673デフォルトの名無しさん
2013/06/02(日) 12:55:57.74 >>667
多少スレ違いだけど、それの解決方法はほぼ確立してるんだ。
結局のところ外部プロセスサーバーが終了する前に
Execl.Appicationを何度も生成からそうなるわけで、
はじめからExecl.Appicationをひとつだけ生成しておくか、
WeakReferenceにExecl.Appicationの参照をもって、
参照が消えてれば生成するというロジックにすれば万事解決する。
連続して使うときはExcelのインスタンスが毎回立ち上がらずに
パフォーマンスがいい。
多少スレ違いだけど、それの解決方法はほぼ確立してるんだ。
結局のところ外部プロセスサーバーが終了する前に
Execl.Appicationを何度も生成からそうなるわけで、
はじめからExecl.Appicationをひとつだけ生成しておくか、
WeakReferenceにExecl.Appicationの参照をもって、
参照が消えてれば生成するというロジックにすれば万事解決する。
連続して使うときはExcelのインスタンスが毎回立ち上がらずに
パフォーマンスがいい。
674デフォルトの名無しさん
2013/06/02(日) 13:08:52.90 そうだね
675デフォルトの名無しさん
2013/06/02(日) 14:57:18.85676デフォルトの名無しさん
2013/06/02(日) 15:17:26.36 俺も経験ある
GCされるまで開放されないんだよねあれ
GCされるまで開放されないんだよねあれ
677デフォルトの名無しさん
2013/06/02(日) 19:34:42.29 馬鹿には無理
678デフォルトの名無しさん
2013/06/02(日) 21:35:27.92 ReleaseComObjectは現実的な対処法ではないだろう。
ある程度の規模のコードで、例外時も含めて漏れなく書くとなると
コード量が膨らみすぎる。
ある程度の規模のコードで、例外時も含めて漏れなく書くとなると
コード量が膨らみすぎる。
679デフォルトの名無しさん
2013/06/17(月) 19:39:26.55 .Net Framework 2.0のUdpClientクラスって、recvfromに該当するものってないのかな?
相手のIPアドレスが知りたいんだけども。
同じポートに複数のスレッドがブロードキャストしてて、片側のパケットだけを対象にしたい
のよね。
相手のIPアドレスが知りたいんだけども。
同じポートに複数のスレッドがブロードキャストしてて、片側のパケットだけを対象にしたい
のよね。
680デフォルトの名無しさん
2013/06/17(月) 22:44:18.60 Connectすればいいよ
681679
2013/06/18(火) 12:48:05.81 自己解決した。
ひとまず、EndRecieveの引数にIPEndPoint仕掛けてやればいいっぽ。
そしたらStringで判定できる。
ひとまず、EndRecieveの引数にIPEndPoint仕掛けてやればいいっぽ。
そしたらStringで判定できる。
682デフォルトの名無しさん
2013/06/18(火) 13:06:09.51 >>679
recvfrom の仕様は分からないけど、送信元のアドレスは UdpClient.Receive
の引数で取れるよ。
非同期なら UdpClient.EndReceive の第2引数。
見当違いだったらごめん。
recvfrom の仕様は分からないけど、送信元のアドレスは UdpClient.Receive
の引数で取れるよ。
非同期なら UdpClient.EndReceive の第2引数。
見当違いだったらごめん。
683682
2013/06/18(火) 13:07:11.20 リロード忘れたorz
685デフォルトの名無しさん
2013/06/18(火) 15:44:15.55 リロード忘れたの意味がわからない人か
686デフォルトの名無しさん
2013/06/18(火) 16:31:15.38 わかってるから優しくフォローしたように見えるけど。
世の中難しいね!
世の中難しいね!
687デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.AN 配列初期化時に値も設定したのですが、gcnew array<int>(3){1,2,3};
って書かないとコンパイラさんにはじかれます。
gcnew array<int>(){1,2,3};
みたいな、配列サイズを指定しない初期化方法は無いでしょうか。
って書かないとコンパイラさんにはじかれます。
gcnew array<int>(){1,2,3};
みたいな、配列サイズを指定しない初期化方法は無いでしょうか。
688デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.AN ()書かない
689デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.AN 本当だ!!<>のあとに{}を書くっていう発想がなかったです。
ありがとうございました。
ありがとうございました。
690デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN C++/CLIで使えるロギングライブラリってどういうのがあるんでしょう?
.netで用意されているのか、あるいはlog4cppなんかのC++用の
ライブラリを使ったりしているんでしょうか。
.netで用意されているのか、あるいはlog4cppなんかのC++用の
ライブラリを使ったりしているんでしょうか。
691デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN log4netとか
692デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN なるほど、見落としていました。
log4netは名前を見たことはあったんですが、「C#で使うもの」と
刷り込まれて、すっかり頭から抜けていました。
log4netは名前を見たことはあったんですが、「C#で使うもの」と
刷り込まれて、すっかり頭から抜けていました。
693デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN listBox1->Items->Add("A");
これがOKで
std::string a = "A";
listBox1->Items->Add(a.c_str());
これだと'const char *' から 'System::Object ^' に変換できないって出るんだけどどういうこと?
最近CLIさわりはじめたんだけどわからん・・・
これがOKで
std::string a = "A";
listBox1->Items->Add(a.c_str());
これだと'const char *' から 'System::Object ^' に変換できないって出るんだけどどういうこと?
最近CLIさわりはじめたんだけどわからん・・・
694デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN リテラルの文字列は文脈によってString^として扱えるってだけ
char*やwchar_t*とString^は別物
char*からならgcnew Stringしたりとか
char*やwchar_t*とString^は別物
char*からならgcnew Stringしたりとか
695デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN >>694
とんくす
とんくす
696デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN697デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN コードっす(1/2)。"192.168.3.128"からのUDPブロードキャストのみを対象にしたいっす。
--------
#pragma endregion
private:
System::Void btnUdpRecv_Click(System::Object^ sender, System::EventArgs^ e)
{
String^ FilterIPAddress = L"255.255.255.255";
// Receive a message and write it to the console.
int portID = 3000;
IPEndPoint^ ipep = gcnew IPEndPoint(IPAddress::Any, portID);
UdpClient^ udpcli = gcnew UdpClient(ipep);
UdpState^ udpst = gcnew UdpState();
udpst->e = ipep;
udpst->u = udpcli;
udpst->u->Connect(FilterIPAddress, portID);
this->btnUdpRecv->Enabled = false;
Console::WriteLine("listening to RT");
udpcli->BeginReceive(gcnew AsyncCallback(this, &UDP_RECVTEST::Form1::ReceiveCallback), udpst);
// Do some work while we wait for a Packet. For this example,
// we'll just sleep
while (!messageReceived)
{
System::Threading::Thread::Sleep(100);
}
this->btnUdpRecv->Enabled = true;
}
--------
#pragma endregion
private:
System::Void btnUdpRecv_Click(System::Object^ sender, System::EventArgs^ e)
{
String^ FilterIPAddress = L"255.255.255.255";
// Receive a message and write it to the console.
int portID = 3000;
IPEndPoint^ ipep = gcnew IPEndPoint(IPAddress::Any, portID);
UdpClient^ udpcli = gcnew UdpClient(ipep);
UdpState^ udpst = gcnew UdpState();
udpst->e = ipep;
udpst->u = udpcli;
udpst->u->Connect(FilterIPAddress, portID);
this->btnUdpRecv->Enabled = false;
Console::WriteLine("listening to RT");
udpcli->BeginReceive(gcnew AsyncCallback(this, &UDP_RECVTEST::Form1::ReceiveCallback), udpst);
// Do some work while we wait for a Packet. For this example,
// we'll just sleep
while (!messageReceived)
{
System::Threading::Thread::Sleep(100);
}
this->btnUdpRecv->Enabled = true;
}
698デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN 続きっす(2/2)。
--------
//Call back function for the read packet data
System::Void UDP_RECVTEST::Form1::ReceiveCallback(IAsyncResult^ ar)
{
String^ FilterIPAddress = "192.168.3.128";
UdpState^ state = (UdpState^)ar->AsyncState;
UdpClient^ udpcli = state->u;
IPEndPoint^ ipep = state->e;
EndPoint^ remoteep = udpcli->Client->RemoteEndPoint;
int len = udpcli->Client->EndReceive(ar);
String^ recvip = ipep->Address->Broadcast->ToString();
if(ipep->Address->Broadcast->ToString() == FilterIPAddress)
{
array<unsigned char>^ receiveBytes = udpcli->EndReceive(ar, ipep); //Packet received
Console::WriteLine("Received packet length {0}", receiveBytes->Length);
messageReceived = true;
return;
}
Console::WriteLine("listening to RT");
udpcli->BeginReceive(gcnew AsyncCallback(this, &UDP_RECVTEST::Form1::ReceiveCallback), state);
}
--------
//Call back function for the read packet data
System::Void UDP_RECVTEST::Form1::ReceiveCallback(IAsyncResult^ ar)
{
String^ FilterIPAddress = "192.168.3.128";
UdpState^ state = (UdpState^)ar->AsyncState;
UdpClient^ udpcli = state->u;
IPEndPoint^ ipep = state->e;
EndPoint^ remoteep = udpcli->Client->RemoteEndPoint;
int len = udpcli->Client->EndReceive(ar);
String^ recvip = ipep->Address->Broadcast->ToString();
if(ipep->Address->Broadcast->ToString() == FilterIPAddress)
{
array<unsigned char>^ receiveBytes = udpcli->EndReceive(ar, ipep); //Packet received
Console::WriteLine("Received packet length {0}", receiveBytes->Length);
messageReceived = true;
return;
}
Console::WriteLine("listening to RT");
udpcli->BeginReceive(gcnew AsyncCallback(this, &UDP_RECVTEST::Form1::ReceiveCallback), state);
}
699デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN 以下、簡単に説明。
プロジェクトはWindowsフォームアプリケーションです。フォームにボタンを配置して
クリックしたら"btnUdpRecv_Click"がうごくという簡単なもの。
あと、UDPブロードキャスト送信側は、inet_addr("255.255.255.255")で送信しております
です。
なにかヒントでもありましたらご教示くださいませ。
プロジェクトはWindowsフォームアプリケーションです。フォームにボタンを配置して
クリックしたら"btnUdpRecv_Click"がうごくという簡単なもの。
あと、UDPブロードキャスト送信側は、inet_addr("255.255.255.255")で送信しております
です。
なにかヒントでもありましたらご教示くださいませ。
700デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN EndReceiveの第二引数かいてないのはいろいろ試してそれでもだめだったんで
一回もと(というか、チャレンジする前)に戻したためです。ご了承くだ。
一回もと(というか、チャレンジする前)に戻したためです。ご了承くだ。
701デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN なんでEndReceive二回よんでんの?
702デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN そう!すいませんアホなことしてましたアンド紛らわしい変数名つけてたんで違うほうみてた…
お騒がせしますた!
お騒がせしますた!
703デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN スレッドを立てたいんだけど、
HANDLE ThreadHandle = (HANDLE)_beginthreadex(NULL, 0, ReadThread, NULL, 0, NULL);
unsigned __stdcall ReadThread(void *p){}
こうすると関数呼び出しには引数リストが無いからメンバーへのポインタを作成するために
&Namespace::ReadThreadって感じで指定しろって言われたからそうしたら今度は
delegate インスタンスを作成する場合以外に&Namespace::ReadThreadのアドレスを指定できないとか言われて八方塞なんだけどどうしたらええの・・・
HANDLE ThreadHandle = (HANDLE)_beginthreadex(NULL, 0, ReadThread, NULL, 0, NULL);
unsigned __stdcall ReadThread(void *p){}
こうすると関数呼び出しには引数リストが無いからメンバーへのポインタを作成するために
&Namespace::ReadThreadって感じで指定しろって言われたからそうしたら今度は
delegate インスタンスを作成する場合以外に&Namespace::ReadThreadのアドレスを指定できないとか言われて八方塞なんだけどどうしたらええの・・・
704デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN いっそ、CreateThread
_biginthread ってなんで必要なんだ?
CreateThread で十分用がたりるのだが?
というか cygwin/gcc-3 なんでこれしか選択肢がない
CreateThread で十分用がたりるのだが?
というか cygwin/gcc-3 なんでこれしか選択肢がない
706デフォルトの名無しさん
2013/07/25(木) NY:AN:NY.AN _beginthreadも結局は内部でCreateThreadを呼び出しているのではあるが
そのほかにランタイムが使う内部変数の初期化なども行っている
よっていきなりCreateThreadを呼び出すと
出所不明のメモリリークに悩まされたりすることになる
逆に言えばMSVCRTを使わないのであればCreateThreadをつかえば良い
そのほかにランタイムが使う内部変数の初期化なども行っている
よっていきなりCreateThreadを呼び出すと
出所不明のメモリリークに悩まされたりすることになる
逆に言えばMSVCRTを使わないのであればCreateThreadをつかえば良い
707デフォルトの名無しさん
2013/07/25(木) NY:AN:NY.AN テンプレ類は覚えること少なくする目的で簡単にしようという理念からはじまり、
いろいろ隠ぺいすることで逆にめんどくさいものになってるよね
いろいろ隠ぺいすることで逆にめんどくさいものになってるよね
708デフォルトの名無しさん
2013/07/25(木) NY:AN:NY.AN >>703
warning C4441無視してね?
warning C4441無視してね?
709デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN Managed Threadは使わんの?.NETなんだし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【音楽】松山千春、女性っぽい名前に親恨んだ「名簿には必ず女の方に入ってる。情けなかったりもしたけどね」 [湛然★]
- 【画像】ドw童貞はw絶ッッッ対"1"を選ぶ卓球 J Kのお食事会の写真見つけちゃいましたwwwwwwwwwww [904880432]
- 【悲報】30代独身女性「結婚や成功してる友達との差は開く一方、このまま1人で生きて淘汰される人生だと気づいて絶望してる…406万いいね [483447288]
- ワイの名字が 女鹿 (めが)なんやが娘の名前で良いの有るる?
- 【動画】韓国新人kpopグループHearts2Heartsさんの投稿、これが卑猥に見える人は脳が壊れていると話題に [963243619]
- 半日勤務だけど出勤したくない🥺
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
