首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dolphin中的WinSCP .NET程序集配准错误

Dolphin中的WinSCP .NET程序集配准错误
EN

Stack Overflow用户
提问于 2016-07-14 13:59:28
回答 1查看 242关注 0票数 1

我试图在Dolphin6.1b2中使用第三方DLL (WinSCP .NET程序集)。我已经注册了DLL并在Windows7中生成了一个TypeLib。

在Dolphin中,我成功地使用了组件向导来生成接口,但是当我尝试注册控件和TypeLib时,会出现错误。注册我得到的控件

已加载WinSCPnet.dll,但无法找到DllRegisterServer入口点。

有人知道为什么会失败吗?我还问了DLL的作者,他倾向于海豚问题,因为注册工作在Windows。

EN

回答 1

Stack Overflow用户

发布于 2016-07-14 14:56:44

DLL是一个.NET程序集,导入生成的TLB。

从:.NET下载“https://winscp.net/eng/download.php程序集/自动化包”

未包装,按包括readme_automation.txt注册。

另见下载和安装WinSCP .NET程序集

启动新海豚,导入.tlb,使用WinSCP前缀生成(这样类就不会以_开头)。

打开工作区,导入WinSCP_Constants池,转换C#示例(https://winscp.net/eng/docs/library#example)的开始:

代码语言:javascript
复制
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.

找到工作对象了..。

编辑:您的WinSCP论坛的概念“为了在海豚中使用它,您需要它的工具注册dll和tlib”是错误的。COM "source“只需要注册一次(如果是”老式“COM服务器,您可以使用regsvr32或dolphin -两者都是这样;对于.NET程序集,您必须使用.NET咒语)。在海豚端唯一真正需要的是导入以前注册的库。

如果有.TLB,我会选择.TLB,否则用.DLL试试运气。遗憾的是,对于一些标准的COM接口,微软从来没有提供过类型库,所以更糟糕的是(使用C/C++,或者手工创建结构/接口表)。

编辑2-进一步的问题:

1)你能解释一下类型化和“我创建”的库类之间的关系吗?(即海豚帮助教程)

海豚创建smalltalk类来反映COM类型/结构。您可以使用这些来实例化Smalltalk中的COM类型,调用它们的方法,传递它们(还有基本类型,例如字符串、整数、.)作为参数和获取返回值的Smalltalk类型(Dolphin为您完成所有转换,因此您可以+-忘记您正在调用外部代码)。

2)实现将库类映射到winscp接口的方法的示例。

我没有实现任何东西,我只是使用了生成的包装器(在后台,WinSCP COM对象-- SessionOptions -set创建了,并设置了一些属性)。

基本上,我只是说:

代码语言:javascript
复制
var opts = new WinSCP.SessionOptions().
opts.Protocol = Protocol.Sftp;
opts.HostName = .........

只需查看WinSCP自动化文档/示例,然后将其转换为smalltalk语言(希望它能够自动工作;-)。

3) smalltalk方法协议:、hostName:、等等在哪里定义?我搜索了那张照片,他们不在那里。你怎么知道怎么用那些方法的名字?

由于SessionOptions (由海豚中的[PREFIX]_SessionOptions类表示)是一个IDispatch接口(海豚中IDispatch的子类),所以所有方法调用都是动态的。只要做正确的事情(&在必要的粒度上捕捉可能的失败),它就会“只工作(tm)”。

Smalltalk sibbling是#doesNotUnderstand: aMessage方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38376260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档