C#, C♯, C#相談室 Part77
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/11/09(金) 22:22:38.15C#, 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.52c++のdllはlibでも可です
あんまり大した違いじゃないかもですが
0450デフォルトの名無しさん
2012/11/30(金) 13:07:57.58class 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 {
gcroot<Proxy^> m_proxy;
public:
Inherited(Proxy^ proxy) : m_proxy(proxy) { }
virtual void DoExec() { this->m_proxy->DoExec(); }
};
// C#
public class Overrider : Proxy {
public override void DoExec() { Console.WriteLine("exec"); }
}
[DllImport("sample.dll")]
static extern void CallbcakTest(IntPtr mustInherit);
void Test() {
var overrider = new Overrider();
IntPtr callback = Proxy.CreateInstance(overrider);
CallbackTest(callback);
Proxy.DeleteInstance(callback);
}
0451デフォルトの名無しさん
2012/11/30(金) 13:09:49.810452デフォルトの名無しさん
2012/11/30(金) 13:28:25.03まさかこれから新OSが出るたびに古いバージョンが対象外になっていくわけじゃないよね?
うっかり4.5を入れるとXPで動かなくなるし、罠に嵌められた気分だわ
0453デフォルトの名無しさん
2012/11/30(金) 14:08:26.950454デフォルトの名無しさん
2012/11/30(金) 14:30:03.86ありがとう。結局C++に戻るのが一番なのかねぇ
0455デフォルトの名無しさん
2012/11/30(金) 15:37:01.51もう帰ってくんなよ
0456デフォルトの名無しさん
2012/11/30(金) 15:40:27.140457デフォルトの名無しさん
2012/11/30(金) 15:43:52.91せっかくプログラム組めてもそんなんじゃ毎日楽しくないだろうに・・・
0458デフォルトの名無しさん
2012/11/30(金) 15:46:48.570459デフォルトの名無しさん
2012/11/30(金) 15:48:54.59たのしいっすよ?
なんで楽しくないの?kwsk
0460デフォルトの名無しさん
2012/11/30(金) 15:58:50.060461デフォルトの名無しさん
2012/11/30(金) 16:13:42.90早く答えて差し上げろ
0463デフォルトの名無しさん
2012/11/30(金) 16:50:01.220464448
2012/11/30(金) 16:54:27.610465デフォルトの名無しさん
2012/11/30(金) 16:59:52.380466デフォルトの名無しさん
2012/11/30(金) 17:06:08.820467デフォルトの名無しさん
2012/11/30(金) 17:16:00.430468デフォルトの名無しさん
2012/11/30(金) 17:18:21.10W32APIスレからキチガイが流入した
0469デフォルトの名無しさん
2012/11/30(金) 17:54:02.720470デフォルトの名無しさん
2012/11/30(金) 17:54:05.90対象のフレームワークで選択できる。
1.0はV S2012では確かにないね。
0471デフォルトの名無しさん
2012/11/30(金) 17:55:37.08対象のフレー、言うワークの変更で行けると思う。
でも今よっぱなんで答えるの面倒w
0472448
2012/11/30(金) 18:09:19.25実行したらCallbackTestのエントリーポイントが見つかりません言われたよ
0473デフォルトの名無しさん
2012/11/30(金) 18:28:10.520474デフォルトの名無しさん
2012/11/30(金) 19:44:48.45Test関数コンパイル通らないよ
0475デフォルトの名無しさん
2012/11/30(金) 19:50:49.880476デフォルトの名無しさん
2012/11/30(金) 19:52:36.250477デフォルトの名無しさん
2012/11/30(金) 19:55:07.79http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
こんな感じです
0478デフォルトの名無しさん
2012/11/30(金) 19:56:10.34失礼しました
0479デフォルトの名無しさん
2012/11/30(金) 20:16:39.570480デフォルトの名無しさん
2012/11/30(金) 20:19:22.44何か勘違いしてないか
0481デフォルトの名無しさん
2012/11/30(金) 20:26:58.38それは言葉の選び方、解釈の問題で意図を汲んでくれてもいいでしょ
おかげさまで動いたー
0482デフォルトの名無しさん
2012/11/30(金) 20:34:55.730483デフォルトの名無しさん
2012/11/30(金) 20:46:24.81その中でCallbackTest呼ぶようにしてたんですが、
実行時にCallbackTest2というエントリポイントは見つかりませんと言われて
それでつまってました
classにしたら動きました
0484デフォルトの名無しさん
2012/11/30(金) 20:48:37.48にっちもさっちも行かなくなってくれる逸材と見た
0485デフォルトの名無しさん
2012/11/30(金) 20:53:48.420486デフォルトの名無しさん
2012/11/30(金) 21:33:35.68特に450さんわざわざコード書いてくれてありがとう
長々スレ占有してすみませんでした。
多分また来るわ
0487デフォルトの名無しさん
2012/11/30(金) 21:39:39.980488デフォルトの名無しさん
2012/11/30(金) 22:25:46.030489デフォルトの名無しさん
2012/11/30(金) 22:42:01.22他人が書いた関数などに渡すたびなにか変わってるんじゃないかって不安になって辛いんだけど…
0490デフォルトの名無しさん
2012/11/30(金) 23:00:52.20構造体を使うかイミュータブルなクラスにする
0491デフォルトの名無しさん
2012/11/30(金) 23:48:52.20うちではDNS引けないんだよね
dobon.netとか知らんと言われる
0492デフォルトの名無しさん
2012/11/30(金) 23:55:16.97普通にアクセスできるけど
0493デフォルトの名無しさん
2012/12/01(土) 07:44:10.06理由不明
0494デフォルトの名無しさん
2012/12/01(土) 08:34:02.23IPアドレス直で開いてみるから
0495デフォルトの名無しさん
2012/12/01(土) 08:38:59.670496デフォルトの名無しさん
2012/12/01(土) 08:54:16.640497デフォルトの名無しさん
2012/12/01(土) 21:09:47.130498デフォルトの名無しさん
2012/12/02(日) 00:15:16.69酔っ払ってたから無茶食っちゃだね(;´Д`)
0499デフォルトの名無しさん
2012/12/02(日) 02:33:57.33Visual Studioのソリューション・エクスプローラから見ても空っぽです
でも Properties.Settings.Default.〜でアクセスすると値が入っています
どうしてなんでしょうか
0500499
2012/12/02(日) 02:45:32.890501デフォルトの名無しさん
2012/12/02(日) 09:21:06.47お家に帰りたいよママン・・・
0502デフォルトの名無しさん
2012/12/02(日) 09:33:40.58自由に生きてく方法なんて100通りだってあるさ
0503デフォルトの名無しさん
2012/12/02(日) 13:23:36.33休めるよ
0504デフォルトの名無しさん
2012/12/02(日) 15:00:31.090505デフォルトの名無しさん
2012/12/02(日) 15:48:40.330506デフォルトの名無しさん
2012/12/02(日) 16:23:06.03俺は別に叩いてないけど
0507デフォルトの名無しさん
2012/12/02(日) 17:26:32.78ただ古い情報はさっさと更新しろよとは思うが
0508デフォルトの名無しさん
2012/12/02(日) 18:10:58.630509デフォルトの名無しさん
2012/12/02(日) 18:15:43.830510デフォルトの名無しさん
2012/12/02(日) 18:18:38.930511デフォルトの名無しさん
2012/12/02(日) 18:21:30.410512デフォルトの名無しさん
2012/12/02(日) 18:23:45.94まだ食える
>>511
また入れろ
0513デフォルトの名無しさん
2012/12/02(日) 18:34:08.30液状だから戻すの無理だわ
0514デフォルトの名無しさん
2012/12/02(日) 18:36:45.83ペヤングに混ぜて食え
0515デフォルトの名無しさん
2012/12/02(日) 18:39:34.72液状なのはdobonのせいだな
0516デフォルトの名無しさん
2012/12/02(日) 18:59:38.680517デフォルトの名無しさん
2012/12/02(日) 20:42:24.860518デフォルトの名無しさん
2012/12/02(日) 20:45:18.320519デフォルトの名無しさん
2012/12/02(日) 22:16:05.460520デフォルトの名無しさん
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.030524デフォルトの名無しさん
2012/12/04(火) 13:16:37.69まさか、ホンモノ・・・
>>525と>>531も回答してみてくれないか?
0525デフォルトの名無しさん
2012/12/04(火) 14:16:27.730526デフォルトの名無しさん
2012/12/04(火) 14:53:41.060527デフォルトの名無しさん
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.250529デフォルトの名無しさん
2012/12/05(水) 11:59:31.780530デフォルトの名無しさん
2012/12/05(水) 12:22:02.980531デフォルトの名無しさん
2012/12/05(水) 19:33:44.47適当な配列にでも突っ込んだほうが使いやすいだろう
0532デフォルトの名無しさん
2012/12/05(水) 19:39:50.94GCあるから良いだろとか言われるかもしれないが何か気持ち悪いし、
初心者向けサイトなら特にリソースの解放は、using使ったりできちんと書いておくべきだと思うわ。
あと↑にもあるように情報が古い。C#なんかもう3.0以前の手法なんか使わない。
今の時代、非同期は、だいたいTaskとかasync/awaitとかだし、旧世代の生スレッド使った入門記事とか目障りなだけ。
もちろん古いバージョン使わなくてはいけない人もいるだろうけどそういう人は、MSDNとか見ればいい。
0533デフォルトの名無しさん
2012/12/05(水) 19:52:20.84つーかstring.Formatの意味が全くない
0534デフォルトの名無しさん
2012/12/05(水) 19:57:37.22一括で値をとりたいってことでしょ?
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一応、旧VBer向けにFCLにもコントロール配列がはったはずだと思ったが...
0536デフォルトの名無しさん
2012/12/05(水) 20:57:56.18Task使ったTCPソケット通信 送受信の参考になるところない?
同期TcpClientからステップアップしようと思うも、挫折した。
0537デフォルトの名無しさん
2012/12/05(水) 21:22:51.320538デフォルトの名無しさん
2012/12/05(水) 22:59:59.470539デフォルトの名無しさん
2012/12/06(木) 00:28:34.39だから重い処理だけ別スレッドでやらせて、終わったらUIスレッドに戻してやる必要がある。
0540デフォルトの名無しさん
2012/12/06(木) 00:29:36.810541デフォルトの名無しさん
2012/12/06(木) 00:37:49.010542デフォルトの名無しさん
2012/12/06(木) 02:41:35.770543デフォルトの名無しさん
2012/12/06(木) 04:34:47.560544デフォルトの名無しさん
2012/12/06(木) 04:45:09.07配列とかList<T>とか
0545デフォルトの名無しさん
2012/12/06(木) 09:19:42.060546デフォルトの名無しさん
2012/12/06(木) 10:41:32.73dynamicでインデクサやCount使えばいいだけ
読み取り専用でデータ構造を問わない集合ならIEnumerable<T>があるし
0547デフォルトの名無しさん
2012/12/06(木) 11:02:07.03インターフェイスはあってもいいと思う
IList<T>はメンバ大杉
0548デフォルトの名無しさん
2012/12/06(木) 11:24:13.03IList<T>とかメンバー多すぎて使いにくいから自作クラスだと、ISimpleList<T>みたいな感じの
インターフェース作ったりしてる。
■ このスレッドは過去ログ倉庫に格納されています