トップページ⇒tech
1001コメント247KB

C#, C♯, C#相談室 Part77

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/11/09(金) 22:22:38.15
前スレ
C#, C♯, C#相談室 Part76
http://toro.2ch.net/test/read.cgi/tech/1349896872/

Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx

Visual Studio 2012 Express
http://www.microsoft.com/visualstudio/jpn/products/visual-studio-express-products
0449デフォルトの名無しさん2012/11/30(金) 13:03:16.52
また書き漏れた
c++のdllはlibでも可です
あんまり大した違いじゃないかもですが
0450デフォルトの名無しさん2012/11/30(金) 13:07:57.58
// C++
class MustInherit { public: virtual void DoExec() = 0; };
// C++/CLI
public ref class Proxy abstract {
public:
     virtual void DoExec() = 0;
     static IntPtr CreateInstance(Proxy^ proxy) {
         return IntPtr((void*)new Inherited(proxy));
     }
     static void DeleteInstance(IntPtr proxy) {
         delete (Inherited*)proxy.ToPointer();
     }
};
#include <vcclr.h>
class Inherited : public MustInherit {
&nbsp; &nbsp; gcroot<Proxy^> m_proxy;
public:
&nbsp; &nbsp; Inherited(Proxy^ proxy) : m_proxy(proxy) { }
&nbsp; &nbsp; virtual void DoExec() { this->m_proxy->DoExec(); }
};
// C#
public class Overrider : Proxy {
&nbsp; &nbsp; public override void DoExec() { Console.WriteLine("exec"); }
}
[DllImport("sample.dll")]
static extern void CallbcakTest(IntPtr mustInherit);
void Test() {
&nbsp; &nbsp; var overrider = new Overrider();
&nbsp; &nbsp; IntPtr callback = Proxy.CreateInstance(overrider);
&nbsp; &nbsp; CallbackTest(callback);
&nbsp; &nbsp; Proxy.DeleteInstance(callback);
}
0451デフォルトの名無しさん2012/11/30(金) 13:09:49.81
dllに隠蔽されたクラスのメソッドをオーバーライドとか気持ち悪いわ
0452デフォルトの名無しさん2012/11/30(金) 13:28:25.03
.NET1.0がサポート対象外になるってきいてきた
まさかこれから新OSが出るたびに古いバージョンが対象外になっていくわけじゃないよね?
うっかり4.5を入れるとXPで動かなくなるし、罠に嵌められた気分だわ
0453デフォルトの名無しさん2012/11/30(金) 14:08:26.95
COMインターフェイス/コクラスにして登録しちゃえば?
0454デフォルトの名無しさん2012/11/30(金) 14:30:03.86
>>453
ありがとう。結局C++に戻るのが一番なのかねぇ
0455デフォルトの名無しさん2012/11/30(金) 15:37:01.51
君にC#は難しすぎたんだね
もう帰ってくんなよ
0456デフォルトの名無しさん2012/11/30(金) 15:40:27.14
ぐーぐる先生使いこなせないちっさい脳みそでやっとこさ拾ってきたライブラリをなんとか使おうと必死こいてんだろ
0457デフォルトの名無しさん2012/11/30(金) 15:43:52.91
どうでもいいレスに対して物凄い憎悪の発露だな・・・怖いスレだわ・・・
せっかくプログラム組めてもそんなんじゃ毎日楽しくないだろうに・・・
0458デフォルトの名無しさん2012/11/30(金) 15:46:48.57
どうでもいいレスすんなゴキブリ
0459デフォルトの名無しさん2012/11/30(金) 15:48:54.59
>>457
たのしいっすよ?
なんで楽しくないの?kwsk
0460デフォルトの名無しさん2012/11/30(金) 15:58:50.06
>>454は俺(>>448)じゃないです
0461デフォルトの名無しさん2012/11/30(金) 16:13:42.90
おいエスパー
早く答えて差し上げろ
04624482012/11/30(金) 16:41:36.45
今>>450の内容試してるけどVS2005だとvar使えない?
0463デフォルトの名無しさん2012/11/30(金) 16:50:01.22
VS2005なんて捨てろ
04644482012/11/30(金) 16:54:27.61
2008じゃないと無理?代替案ないですか?
0465デフォルトの名無しさん2012/11/30(金) 16:59:52.38
varなんて心底どうでも良い部分だろ…
0466デフォルトの名無しさん2012/11/30(金) 17:06:08.82
仕様がコロコロ変わるゴミ言語
0467デフォルトの名無しさん2012/11/30(金) 17:16:00.43
おいおいD言語はスレ違いだぜ
0468デフォルトの名無しさん2012/11/30(金) 17:18:21.10
>>457
W32APIスレからキチガイが流入した
0469デフォルトの名無しさん2012/11/30(金) 17:54:02.72
どうでもいいレスすんなゴキブリ
0470デフォルトの名無しさん2012/11/30(金) 17:54:05.90
>>452
対象のフレームワークで選択できる。
1.0はV S2012では確かにないね。
0471デフォルトの名無しさん2012/11/30(金) 17:55:37.08
>>462
対象のフレー、言うワークの変更で行けると思う。
でも今よっぱなんで答えるの面倒w
04724482012/11/30(金) 18:09:19.25
varをOverriderに変えたら普通にコンパイル通った
実行したらCallbackTestのエントリーポイントが見つかりません言われたよ
0473デフォルトの名無しさん2012/11/30(金) 18:28:10.52
フレー言うワーク
0474デフォルトの名無しさん2012/11/30(金) 19:44:48.45
DllImportってclassの中に書かないといけないんですか?
Test関数コンパイル通らないよ
0475デフォルトの名無しさん2012/11/30(金) 19:50:49.88
なんでそのレベルでC#で継承させたいとか言い出すんだよ…
0476デフォルトの名無しさん2012/11/30(金) 19:52:36.25
ごめんそれは言えない
0477デフォルトの名無しさん2012/11/30(金) 19:55:07.79
>>474
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
こんな感じです
0478デフォルトの名無しさん2012/11/30(金) 19:56:10.34
属性というものなんですね
失礼しました
0479デフォルトの名無しさん2012/11/30(金) 20:16:39.57
c++やってましたアピールしてる割にたいしたことねーな
0480デフォルトの名無しさん2012/11/30(金) 20:19:22.44
そもそも基底クラスのメソッドが呼ばれたらオーバーライドしたメソッドが呼ばれて欲しいってどうなのよ
何か勘違いしてないか
0481デフォルトの名無しさん2012/11/30(金) 20:26:58.38
なんとなく言いたいことわかるけど
それは言葉の選び方、解釈の問題で意図を汲んでくれてもいいでしょ

おかげさまで動いたー
0482デフォルトの名無しさん2012/11/30(金) 20:34:55.73
テキトーだなw
0483デフォルトの名無しさん2012/11/30(金) 20:46:24.81
c++/cliのdllでCallbackTest2作って、
その中でCallbackTest呼ぶようにしてたんですが、
実行時にCallbackTest2というエントリポイントは見つかりませんと言われて
それでつまってました
classにしたら動きました
0484デフォルトの名無しさん2012/11/30(金) 20:48:37.48
ほっといてもヒープコラプション等でバグらせて
にっちもさっちも行かなくなってくれる逸材と見た
0485デフォルトの名無しさん2012/11/30(金) 20:53:48.42
ほっとかないで困らせるつもりだったのか
0486デフォルトの名無しさん2012/11/30(金) 21:33:35.68
みなさんありがとうございました。
特に450さんわざわざコード書いてくれてありがとう
長々スレ占有してすみませんでした。
多分また来るわ
0487デフォルトの名無しさん2012/11/30(金) 21:39:39.98
(ドン引き)
0488デフォルトの名無しさん2012/11/30(金) 22:25:46.03
Dobonついに死んだか?
0489デフォルトの名無しさん2012/11/30(金) 22:42:01.22
c#ってc++のconst参照的な機能ないの?
他人が書いた関数などに渡すたびなにか変わってるんじゃないかって不安になって辛いんだけど…
0490デフォルトの名無しさん2012/11/30(金) 23:00:52.20
ない
構造体を使うかイミュータブルなクラスにする
0491デフォルトの名無しさん2012/11/30(金) 23:48:52.20
>>488
うちではDNS引けないんだよね
dobon.netとか知らんと言われる
0492デフォルトの名無しさん2012/11/30(金) 23:55:16.97
ちょっと前に話題になったDNS Changerか?w
普通にアクセスできるけど
0493デフォルトの名無しさん2012/12/01(土) 07:44:10.06
8.8.8.8使ってるとcmakeに繋がんねなんてこともあった
理由不明
0494デフォルトの名無しさん2012/12/01(土) 08:34:02.23
dobon.netにつながる人は、dobon.netのIPアドレス教えてよ
IPアドレス直で開いてみるから
0495デフォルトの名無しさん2012/12/01(土) 08:38:59.67
210.247.16.1
0496デフォルトの名無しさん2012/12/01(土) 08:54:16.64
なにそれw
0497デフォルトの名無しさん2012/12/01(土) 21:09:47.13
dobon.net復活キター!
0498デフォルトの名無しさん2012/12/02(日) 00:15:16.69
>>473
酔っ払ってたから無茶食っちゃだね(;´Д`)
0499デフォルトの名無しさん2012/12/02(日) 02:33:57.33
Settings.settingsファイルに文字列を更新させようとしているんですが、
Visual Studioのソリューション・エクスプローラから見ても空っぽです

でも Properties.Settings.Default.〜でアクセスすると値が入っています
どうしてなんでしょうか
05004992012/12/02(日) 02:45:32.89
自己解決しました
0501デフォルトの名無しさん2012/12/02(日) 09:21:06.47
疲れたよママン・・・
お家に帰りたいよママン・・・
0502デフォルトの名無しさん2012/12/02(日) 09:33:40.58
仕事か?帰ればいいんだよ
自由に生きてく方法なんて100通りだってあるさ
0503デフォルトの名無しさん2012/12/02(日) 13:23:36.33
キーボードでモニタをバンバン叩いてくぁwせdrftgyふじこlpって叫べば休めるよ
休めるよ
0504デフォルトの名無しさん2012/12/02(日) 15:00:31.09
ママはそんなに万能じゃないのよ
0505デフォルトの名無しさん2012/12/02(日) 15:48:40.33
今こそ聞くがdobonアンチがいるのはなんでだぜ?
0506デフォルトの名無しさん2012/12/02(日) 16:23:06.03
初心者向けサイトの信者がウザいからじゃねえの?
俺は別に叩いてないけど
0507デフォルトの名無しさん2012/12/02(日) 17:26:32.78
アンチなんかいるか?

ただ古い情報はさっさと更新しろよとは思うが
0508デフォルトの名無しさん2012/12/02(日) 18:10:58.63
いかにも下衆な奴がいいそうな言い草だね
0509デフォルトの名無しさん2012/12/02(日) 18:15:43.83
いやねキミみたいなカスに対する教育効果をだね
0510デフォルトの名無しさん2012/12/02(日) 18:18:38.93
dobonのせいで楽しみしてたぺヤング流しにぶちまけたじゃねーか糞
0511デフォルトの名無しさん2012/12/02(日) 18:21:30.41
dobonのせいでオナラしたらちょっとウンコ出ちゃったじゃねーか糞
0512デフォルトの名無しさん2012/12/02(日) 18:23:45.94
>>510
まだ食える

>>511
また入れろ
0513デフォルトの名無しさん2012/12/02(日) 18:34:08.30
>>512

液状だから戻すの無理だわ
0514デフォルトの名無しさん2012/12/02(日) 18:36:45.83
>>513
ペヤングに混ぜて食え
0515デフォルトの名無しさん2012/12/02(日) 18:39:34.72
>>510,511 は無理やりすぎだが

液状なのはdobonのせいだな
0516デフォルトの名無しさん2012/12/02(日) 18:59:38.68
文字通りの糞スレ
0517デフォルトの名無しさん2012/12/02(日) 20:42:24.86
糞スレにふさわしい糞がレスしてるよ
0518デフォルトの名無しさん2012/12/02(日) 20:45:18.32
糞食ってる時にカレーの話はするな
0519デフォルトの名無しさん2012/12/02(日) 22:16:05.46
質問できそうな空気じゃないんで帰りますノシ
0520デフォルトの名無しさん2012/12/03(月) 22:05:17.01
おいエスパー
はやく答えて差し上げろ
0521デフォルトの名無しさん2012/12/04(火) 00:13:43.03
回答
パスが通ってないのが原因
環境変数PATHを編集したまえ
0522デフォルトの名無しさん2012/12/04(火) 08:44:29.41
ありがとうございます。
パスを設定して無事にコンパイルする事が出来ました。
0523デフォルトの名無しさん2012/12/04(火) 09:13:34.03
うちの田舎はバスが通ってない
0524デフォルトの名無しさん2012/12/04(火) 13:16:37.69
>>521
まさか、ホンモノ・・・
>>525と>>531も回答してみてくれないか?
0525デフォルトの名無しさん2012/12/04(火) 14:16:27.73
つまんね
0526デフォルトの名無しさん2012/12/04(火) 14:53:41.06
>>525も>>531も質問ではない
0527デフォルトの名無しさん2012/12/05(水) 11:44:25.93
テキストボックスのプロパティを取得して変数に代入する際
現在は以下のようにしているのですが
double data = Parse.double(textbox.Text);

これをfor文を使って複数のテキストボックスの値を取得するようにしたいのですが以下のように書いてもダメでした.
for(int i=0;i<2;i++){
string textboxName = String.Format("textbox" + (i + 1) + ".Text");
data[i] = double.Parse(textboxName);
}
プロパティを指定する際のオブジェクト名は直接記述するしかないのでしょうか?
0528デフォルトの名無しさん2012/12/05(水) 11:50:05.25
Controlsプロパティのインデクサを使う
0529デフォルトの名無しさん2012/12/05(水) 11:59:31.78
メンドクサ
0530デフォルトの名無しさん2012/12/05(水) 12:22:02.98
スクリプト脳
0531デフォルトの名無しさん2012/12/05(水) 19:33:44.47
リフレクション使えば、やろうとしてることはできるだろうけどw
適当な配列にでも突っ込んだほうが使いやすいだろう
0532デフォルトの名無しさん2012/12/05(水) 19:39:50.94
dobonは、そのままコピペで動かすと、ファイルとかのリソース解放されない
GCあるから良いだろとか言われるかもしれないが何か気持ち悪いし、
初心者向けサイトなら特にリソースの解放は、using使ったりできちんと書いておくべきだと思うわ。
あと↑にもあるように情報が古い。C#なんかもう3.0以前の手法なんか使わない。
今の時代、非同期は、だいたいTaskとかasync/awaitとかだし、旧世代の生スレッド使った入門記事とか目障りなだけ。
もちろん古いバージョン使わなくてはいけない人もいるだろうけどそういう人は、MSDNとか見ればいい。
0533デフォルトの名無しさん2012/12/05(水) 19:52:20.84
double.Parse(Controls["textbox" + (i + 1)].Text)が面倒とはねえ
つーかstring.Formatの意味が全くない
0534デフォルトの名無しさん2012/12/05(水) 19:57:37.22
textbox1 、 textbox2 、 textbox3・・・みたいなのをデザイナで配置して
一括で値をとりたいってことでしょ?
C#で変数名とかオブジェクト名を文字列で生成してアクセスするってのは、普通は、できないし(リフレクション使えば可)

string textboxName = String.Format("textbox" + (i + 1) + ".Text");
data[i] = double.Parse(textboxName);

そもそもこんなコードじゃParseで例外確実に吐くだろう。"textbox1.Text"は、数値に変換できない。
0535デフォルトの名無しさん2012/12/05(水) 20:37:47.95
VB6のコントロール配列みたいなことしたい人いるんだね。
一応、旧VBer向けにFCLにもコントロール配列がはったはずだと思ったが...
0536デフォルトの名無しさん2012/12/05(水) 20:57:56.18
>今の時代、非同期は、だいたいTaskとかasync/awaitとかだし
Task使ったTCPソケット通信 送受信の参考になるところない?
同期TcpClientからステップアップしようと思うも、挫折した。
0537デフォルトの名無しさん2012/12/05(水) 21:22:51.32
Taskで動くスレッドがMTAなのを忘れててはまったわ
0538デフォルトの名無しさん2012/12/05(水) 22:59:59.47
じゃあCOMと一緒に使えないって事?
0539デフォルトの名無しさん2012/12/06(木) 00:28:34.39
UIを別スレッドで弄るのは、無理。
だから重い処理だけ別スレッドでやらせて、終わったらUIスレッドに戻してやる必要がある。
0540デフォルトの名無しさん2012/12/06(木) 00:29:36.81
UIの話には見えない
0541デフォルトの名無しさん2012/12/06(木) 00:37:49.01
You&I
0542デフォルトの名無しさん2012/12/06(木) 02:41:35.77
Javascriptのcollectionの概念はあったほうがいいかな
0543デフォルトの名無しさん2012/12/06(木) 04:34:47.56
コレクションって何
0544デフォルトの名無しさん2012/12/06(木) 04:45:09.07
オブジェクトの集合
配列とかList<T>とか
0545デフォルトの名無しさん2012/12/06(木) 09:19:42.06
どうでもいいレスすんなゴキブリ
0546デフォルトの名無しさん2012/12/06(木) 10:41:32.73
>>542
dynamicでインデクサやCount使えばいいだけ
読み取り専用でデータ構造を問わない集合ならIEnumerable<T>があるし
0547デフォルトの名無しさん2012/12/06(木) 11:02:07.03
メンバが[]とCountとCopyToとGetEnumeratorだけのIRandomAccess<T>のような
インターフェイスはあってもいいと思う
IList<T>はメンバ大杉
0548デフォルトの名無しさん2012/12/06(木) 11:24:13.03
だったら作れば良かろう。
IList<T>とかメンバー多すぎて使いにくいから自作クラスだと、ISimpleList<T>みたいな感じの
インターフェース作ったりしてる。
■ このスレッドは過去ログ倉庫に格納されています