ふらっとC#,C♯,C#(初心者用) Part53at TECH
ふらっとC#,C♯,C#(初心者用) Part53 - 暇つぶし2ch319:デフォルトの名無しさん
10/01/15 01:17:15
農業界なんて先細り真っ只中だから
そういう考え方はハズレだったのだろうな

320:デフォルトの名無しさん
10/01/15 02:11:03
C#でDLLの作成をしようと試みています。
DLLはアプリケーションのプラグインで、プラグインは本体から登録された各dllに対し、
グローバル関数が呼ばれるような仕様になっているのですが、
(例えばplugin.dllのInit()を呼び出す、といったような形になっている)
C#はグローバル関数をサポートしていないため、どのように受ければよいのかが分かりません。
C#のみでこのような呼び出しに対応する方法はあるでしょうか。それともラッパーをC++等の他の言語で書いて、
経由するしかないでしょうか。


321:デフォルトの名無しさん
10/01/15 02:16:59
後者YES
C++/CLIでも使った方が楽じゃねえかと思う

322:デフォルトの名無しさん
10/01/15 02:17:51
>>320
リフレクションで呼び出すか、プラグインinterfaceのDLLを準備する。

323:デフォルトの名無しさん
10/01/15 02:19:41
プラグイン側がC#で呼び出すほうは違うのかな?
なら>>322はなしで。

324:デフォルトの名無しさん
10/01/15 02:24:00
グローバル関数って言ってるからLoadLibrary+GetProcAddressだろう
注意しておくとグローバル関数にするだけじゃ駄目な
エクスポートしないと

325:デフォルトの名無しさん
10/01/15 02:27:46
>>321
ありがとうございます。C#の勉強も兼ねているので、ちょっと泥臭いことも含めて色々試して見ます。

>>322-333
リフレクション云々が分からずぐぐってみてましたが、DLL側で属性の定義をしておくと
C#のDLLを呼び出す場合にアセンブリ情報を使って条件分岐等出来るということなのでしょうか。
また別で調べてみます。どうもありがとうございました。

326:デフォルトの名無しさん
10/01/15 02:32:49
泥臭いも何も、ネイティブからLoadLibraryで呼び出される類のプラグインはC#のみだと作成できないぞ

327:デフォルトの名無しさん
10/01/15 03:04:54
コンテナをいくつか配置して、その中に動的にボタンなどを入れ込む場合
プログラム全体としてうまく管理する方法はないでしょうか?

クリックイベントはコンテナ単位で共通にした上で
ボタンなどを動的に作る際の名前(Name)に
記号+識別番号A+識別番号Bを文字列化しています。
ただこの方式だとクリックイベントを処理する際にNameから
元の番号を切り出して・・とあまりスマートではないので

よろしくお願いします。




328:デフォルトの名無しさん
10/01/15 03:08:12
もう少し目的を具体的に書けよ
うまく管理したいって何を

ボタンごとに情報を持たせたいとかそれだけならButton.Tagに何か入れとけ

329:デフォルトの名無しさん
10/01/15 03:19:08
共通のイベントハンドラから、どのボタンが押されたのかを識別する為に
名前から特定の文字列を抜き出して識別する現状の方法以上にいい方法があるか
…ってこと?

330:デフォルトの名無しさん
10/01/15 03:19:17
>>325
ちょっとひねればプラグインのサポートはそんなに難しくないよ。
まず、プラグインの雛形となるinterfaceやenumを定義した基本となる情報を入れたDLL(A)を作成する。
それを元にプラグインのDLL(B)を作成する。
アプリ本体は(A)に参照設定を持っておいて、(B)をリフレクションで読み込む。
(B)のコードはinterface越しに扱えばいい。

331:デフォルトの名無しさん
10/01/15 03:25:43
派生コントロール作ってsenderから独自プロパティ参照して云々するのが
オブジェクト指向的にはあってるんじゃないの

「コード書くのがめんどくせぇ」っていうなら今の方法がいちばんだからそのままにしとけ

332:デフォルトの名無しさん
10/01/15 03:27:19
だね。

333:デフォルトの名無しさん
10/01/15 03:29:23
>>328
>Button.Tagに何か入れとけ

>>329
はい

>>331
つまりボタンなりを継承したクラス作ってそこに・・・ということですか


334:デフォルトの名無しさん
10/01/15 03:30:19
ああ・・中途半端な状態で・・・orz
>>328
>Button.Tagに何か入れとけ
確かにこれもいいですね

335:デフォルトの名無しさん
10/01/15 04:20:50
URLリンク(www.atmarkit.co.jp)
↑で紹介されているPetshop3.0についてなんですが
記事ではコードを読むことを勧めていたので
URLリンク(www.microsoft.com)
記事中の↑のページから、サイト内をいろいろ探してみたのですが
ソースコードの所在がわかりません。
どこを見落としているのか、自分ではとうとう発見できずにいます。
どなたかわかる方いらっしゃいましたらご教授願えないでしょうか。よろしくお願いします。

336:デフォルトの名無しさん
10/01/15 04:48:49
何のギャグだよ
それインストールすりゃはいってる

337:デフォルトの名無しさん
10/01/15 07:15:58
>>326
ILをいじるという方法はあるけどな。

338:デフォルトの名無しさん
10/01/15 07:29:59
formにlistboxをFillで貼り付けてウインドウサイズを変更すると
きっちり張り付くわけじゃないんですね

たぶんlistboxのアイテムの高さの関係で制御してるんでしょうけど・・


339:デフォルトの名無しさん
10/01/15 10:02:47
逆P/Invokeっていう冗談みたいなものがあったな
ildasmで逆コンパイルしてILを直接編集しろとか
MS公式のドキュメントに普通に書いてあって目を疑った


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch