DLLは、.NETアセンブリであり、生成されたTLBをインポートします。 readme_automation.txt
を含まにつきとして登録https://winscp.net/eng/download.php
アンパック、:
ダウンロード".NETアセンブリ/自動化パッケージ" から。
も参照Downloading and Installing WinSCP .NET Assembly
は、新鮮なイルカを開始(そのクラスは_
で起動しないでしょう)WinSCP
接頭辞で生成され、.tlb
を輸入しました。
ワークスペースをオープンし、C#の例(https://winscp.net/eng/docs/library#example)の開始を変換し、WinSCP_Constantsプールをインポート:
opts := WinSCP_SessionOptions new
protocol: Protocol_Sftp;
hostName = 'example.com';
userName: 'user';
password: 'mypassword';
sshHostKeyFingerprint: 'ssh-rsa 2048 ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff';
yourself.
が戻って作業対象物を手に入れた...
EDIT:あなたのWinSCPのフォーラム概念「ために、あなたがドルフィンとtlibを登録するツールを持っている必要があります。 "は間違っています。 COM "ソース"は一度だけ登録する必要があります( "旧式の" COMサーバーの場合、regsvr32またはdolphinのどちらも使用できますが、どちらも同じです; .NETアセンブリの場合は、.NETの呪文)。イルカ側で本当に必要なのは、以前に登録したライブラリをインポートすることだけです。
.TLB
がある場合は、.TLB
に行きます。それ以外の場合は.DLL
で私の運を試してください。残念ながら、いくつかの標準COMインターフェイスでは、Microsoftはtypelibを利用できないため、そこではさらに悪化しています(C/C++を使用するか、手作業で構造体/インターフェイステーブルを作成します)。
編集2 - さらなる質問:
1)あなたは、「私が作成した」タイプライブラリとライブラリのクラス間の関係を説明することができます(ヘルプのすなわちイルカチュートリアル)
イルカは、ミラーにSmalltalkのクラスを作成しますCOMタイプ/構造。あなたはそう、イルカがあなたのためのすべての変換を行います(、SmalltalkのからCOM型のインスタンスを作成、そのメソッドを呼び出して、それらを渡す(およびまた、文字列、整数、...などのプリミティブ型)の引数として、また返された値のためのSmalltalkの種類を取得するためにこれらを使用します+あなたが外国のコードを呼んでいることを忘れることができます)。
2)あなたはWinSCPのインターフェイスにライブラリのクラスをマッピング実装方法の一例。
私は何も実装しませんでした。私はちょうど生成されたラッパーを使用しました(バックグラウンドで、WinSCP COMオブジェクト - SessionOptions
- いくつかのプロパティが設定されていました)。
基本的に、私は言った:
var opts = new WinSCP.SessionOptions().
opts.Protocol = Protocol.Sftp;
opts.HostName = .........
ちょうどWinSCPのオートメーションドキュメント/例を見て、そしてそれは、話すのSmalltalkのために(そして、できれば、それは自動魔法;-)動作するはず変換します。
3)smalltalkメソッドはどこですか?protocol :, hostName:などは定義されていますか?私は画像を検索し、彼らはそこにいません。これらのメソッド名をどうやって使用するのですか?
(ドルフィンで[PREFIX]_SessionOptions
クラスによって表される)SessionOptions
はIDispatch
インタフェース(イルカでIDispatch
のサブクラス)であるためには、すべてのメソッド呼び出しは、本質的に動的です。あなたはちょうどいいことをして(&は必要な粒度で起こりうる失敗を捕まえます)、それは「ちょうどうまくいく(tm)」でしょう。
スモールトークシブリングは#doesNotUnderstand: aMessage
メソッドです。
PS:WinSCPフォーラムに加入してもらえませんでした。もしこれがあれば、そこに投稿してください... –
miroslav、私はあなたの指示と例を守り、有効なインスタンスを取り戻しました。ありがとう! – Duetto
miroslav、1)私が作成したライブラリとtypelibとの関係について説明することができます(つまり、ヘルプのイルカチュートリアル)2)実装したメソッドの例:ライブラリクラスをwinscpインターフェイスにマッピングします。 – Duetto