おそらく、.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
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なんだし
710デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN array<String^>^ txts = gcnew array<String^>{"りんご", "ごりら", "らっぱ"};
int index = 0;
String^ msg = txts[index ++] + txts[index ++] + txts[index ++];
とやった時にmsg = "りんごりんごりんご"になるのですが
msg = "りんごごりららっぱ"となるようなインクリメントの方法はないでしょうか
int index = 0;
String^ msg = txts[index ++] + txts[index ++] + txts[index ++];
とやった時にmsg = "りんごりんごりんご"になるのですが
msg = "りんごごりららっぱ"となるようなインクリメントの方法はないでしょうか
711デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN 3行にわければ?
sehermitage.web.fc2.com/program/c_lang.html
> インクリメント演算子++とデクリメント演算子--は,変数の値を変化させるが,
> その変数が同じ式の中で再び参照された場合,動作は未定義となり値は保証されない
sehermitage.web.fc2.com/program/c_lang.html
> インクリメント演算子++とデクリメント演算子--は,変数の値を変化させるが,
> その変数が同じ式の中で再び参照された場合,動作は未定義となり値は保証されない
712デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN >>711
情報どうもです!式を分けるしかないですね。
情報どうもです!式を分けるしかないですね。
713デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN 32bitのネイティブのDLLを呼び出す.netのDLLがあります。
それを呼び出す.netのアプリの設定で、共通言語ランタイムサポートを/clr:safeでコンパイルすると、64bitOSで動かなくります。
共通言語ランタイムサポートを/clrにすると動きます。/clr:safeのままで動かすにはどうしたら良いでしょう。
それを呼び出す.netのアプリの設定で、共通言語ランタイムサポートを/clr:safeでコンパイルすると、64bitOSで動かなくります。
共通言語ランタイムサポートを/clrにすると動きます。/clr:safeのままで動かすにはどうしたら良いでしょう。
714デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN >>713
safeだとanycpu指定で作ったアセンブリとなるので、
64bitのWindowsだと64bitモードで動作する
手元にあるVS2010では適当なコンパイルオプションが見つからないので、
CorFlagsで32bitフラグをONにするとかかな
safeだとanycpu指定で作ったアセンブリとなるので、
64bitのWindowsだと64bitモードで動作する
手元にあるVS2010では適当なコンパイルオプションが見つからないので、
CorFlagsで32bitフラグをONにするとかかな
716デフォルトの名無しさん
2013/09/08(日) 19:50:17.03 MFCアプリを移行しようと/clrでビルドしたところ、LNK4248が大量に発生しました。
原因は使用しているdllで使う構造体の定義本体がなく事前宣言しかないための
ようですが、これは無視しても問題ないものでしょうか?
当然、この構造体のメンバにアクセスすることはなく、これまでは問題ありませんでした。
また、この警告の出力を抑制する方法はないでしょうか?環境はVS2008です。
原因は使用しているdllで使う構造体の定義本体がなく事前宣言しかないための
ようですが、これは無視しても問題ないものでしょうか?
当然、この構造体のメンバにアクセスすることはなく、これまでは問題ありませんでした。
また、この警告の出力を抑制する方法はないでしょうか?環境はVS2008です。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 今年の漢字、きょう発表😉 [583597859]
- 女の子集合!
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- 安倍さん死んでからの日本終わりだよ
- ひまでんぼ
