20100512 学习记录 vb的dll加入不进c#


vb程序中源代码:

Private   Declare   Function  lt_msg_leave_clt  Lib   " ltws32.dll "  ( ByVal  SD  As   Integer As   Integer
Private   Declare   Function  lt_msg_send_clt  Lib   " ltws32.dll "  ( ByVal  SD  As   Integer ByVal  Buf  As   String ByVal  Buf_len  As   Integer As   Integer

这个dll直接添加引用的话报错为:

A reference to  ‘.....dll’ could not be added. No type libraries were found in the component

 

经过网上捞针最后改为如下实现方式——

using  System.Runtime.InteropServices;

[DllImport(
" C:\\Program Files\\LeeSearchXv2\\ltws32.dll " )]
public   static   extern   int  lt_msg_send_clt( int  SD,  string  Buf,  int  Buf_len);
[DllImport(
" C:\\Program Files\\LeeSearchXv2\\ltws32.dll " )]
public   static   extern   int  ltWinSockError( int  WSErrorNo,  string  WSErrorDesc,  int  WSErrorLen);

 

dll文件加不进c#项目里的原因:

 

1,这个dll不是c#项目库,而是用比如c++制作的,用是可以用,搜索 平台调用,可以使用这些dll。
2,如果是c#类库,就应该在引用或者工具栏 选项卡里可以增加。
 

 

受该链接启发

http://topic.csdn.net/t/20040411/17/2951971.html

 

一群没啥用的链接 - =

http://social.msdn.microsoft.com/Forums/zh-TW/Vsexpressvcs/thread/c194f361-afcb-47ac-81e9-8be60cbc25a0

http://social.msdn.microsoft.com/forums/en-US/clr/thread/b031b6f7-5b56-4ce8-ba10-63d93c9f1fc7/ 

 



 

RaiseEvent 语句

触发类、窗体或文档中在模块级声明的事件。

 
RaiseEvent eventname[( argumentlist )]
20100512 学习记录 vb的dll加入不进c#  各部分说明
eventname

必选。要触发的事件的名称。

argumentlist

可选。以逗号分隔的变量、数组或表达式的列表。argumentlist 参数必须括在括号中。如果没有参数,则必须省略括号。

20100512 学习记录 vb的dll加入不进c#  备注

必选的 eventname 是在模块中声明的事件的名称。它符合 Visual Basic 变量命名规则。

如果事件尚未在引发它的模块中声明,则将发生错误。下面的代码片断阐释了一个事件声明和一个引发该事件的过程。


不能使用 RaiseEvent 来引发未在模块中显式声明的事件。例如,所有窗体从 System.Windows.Forms.Form 继承一个 Click 事件,但不能使用派生窗体中的 RaiseEvent 来引发该事件。如果在窗体模块中声明 Click 事件,则该事件将隐藏窗体自身的 Click 事件。您仍然可以通过调用 OnClick 方法来调用窗体的 Click 事件。

默认情况下,Visual Basic 中定义的事件会按照建立连接的顺序来引发它的事件处理程序。由于事件可以具有 ByRef 参数,因此,晚期连接的进程可能接收已被早期事件处理程序更改的参数。事件处理程序执行完毕后,会将控制返回到引发事件的子例程。

Note注意

非共享事件不应该在声明它们的类的构造函数内引发。虽然这些事件不会导致运行时错误,但它们可能会无法由关联的事件处理程序来捕获。如果您需要从构造函数中引发事件,请使用 Shared 修饰符来创建共享事件。

您可以通过定义自定义事件来更改事件的默认行为。对于自定义事件,RaiseEvent 语句调用事件的 RaiseEvent 访问器。有关自定义事件的更多信息,请参见 Event 语句

 

 

 vb中的RaiseEvent 调用event这里似乎应该用 c#的委托来实现。

 

你可能感兴趣的:(dll)