C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.6603 の関連記事表示

<< 0 >>
■6603  Re[1]: C# から VB6.0のDLLのメッソドを起動
□投稿者/ 魔界の仮面弁士 -(2006/09/19(Tue) 23:59:50)

    分類:[C#] 

    # 「メソッド」表現と
    # 「メッソド」表現が混在しているのが気になりますが、
    # それはとりあえず置いといて……。


    > DLL 側の引数が byref の object型になっていて、
    > 各メソッド内で、object.hoge = "" 等
    > DLL 側で値をセットしています。
    VB6製DLLにオブジェクトを渡す場合、そのデータ型は、COM として
    レジストリに登録されている型である必要があります。指定したクラスが、
    COMとして公開されているかどうかを確認してみてください。


    > object hoge = new clsHoge();
    > vbdll.vbhoge( ref hoge );

    こんな感じでどうでしょう。


    ---------- VB6製DLL (ProgID = "VB6SampleDLL.SampleClass") ----------
    Option Explicit
    Public Sub vbhoge(ByRef object As Object)
    object.hoge = Format(Now, "yyyy-mm-dd hh:nn:ss")
    End Sub

    '以下は、Marshal.ReleaseComObject の解放が行われたかのチェック用
    Private Sub Class_Initialize()
    Debug.Print "-->"; ObjPtr(Me)
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "<--"; ObjPtr(Me)
    End Sub


    ---------- C#2.0製コンソールアプリ ----------
    using System;
    using System.Runtime.InteropServices;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    VB6SampleDLL.SampleClass vbdll = null;
    try
    {
    object clsHoge = new Hoge();
    vbdll = new VB6SampleDLL.SampleClassClass();
    vbdll.vbhoge(ref clsHoge);
    Console.WriteLine(((Hoge)clsHoge).hoge);
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    finally
    {
    if ((vbdll != null) && Marshal.IsComObject(vbdll))
    {
    Marshal.ReleaseComObject(vbdll);
    }
    }
    Console.ReadLine();
    }
    }

    [ComVisible(true)]
    //[Guid("{1F4F835B-1702-4df9-8AF8-A782713FD1EC}")]
    //[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
    public class Hoge
    {
    public string hoge = String.Empty;
    }
    }

記事No.6581 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■6603  Re[5]: 逆電
□投稿者/ れい -(2007/08/20(Mon) 12:02:43)
    No6601 (中博俊 さん) に返信
    > 前から聞きたかったので便乗
    > とりあえず軽度のサージを防ぎたいので、PC電源にはUPS、これで電流の異常はちょっとだけ防げると思ってるんですが、光ケーブルはメタルじゃないから大丈夫なんでしょうか?

    もちろん光ケーブル自体はOKですよ!

    > ただネットワーク機器はUPSの容量の問題もあるので、直ザシです。
    > そうすると、電源=>ネットワーク機器=>屋内系LANと流れて死んじゃうかもしれないのかしら。

    その通りです。

    > 電話線のアダプタは見るけどLANケーブルのとかないかなー。

    ありますよ。
    簡単なサージプロテクタならUPSにおまけでついてきたりしますね。
    中を見たことはありませんが…。
    無線か光にしてしまうという手もあります。

    > できるだけ小容量のでイイからネットワーク機器にもUPSつないだほうがいい?

    ご冗談を。
    中博俊さんほどのお方ならネットワークは全て光か無線に違いありません。
    デスクトップPCのお尻から直接光ケーブルが出てるんですよね。
    そのままJPIXに100Gくらいで。
記事No.6589 のレス /過去ログ17より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -