189 8069 5689

c调用vb.net过程 c++调用vb

如何使用VB.NET中可选参数调用方法

VB.NET可选参数的默认值必须是一个常数表达式。

站在用户的角度思考问题,与客户深入沟通,找到工布江达网站设计与工布江达网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名虚拟主机、企业邮箱。业务覆盖工布江达地区。

过程定义中跟在可选参数后的每个参数也都必须是可选的。

下面的语法显示带VB.NET可选参数的过程声明:

Sub sub name(ByVal parameter 1 As data type 1,

Optional ByVal parameter 2 As data type 2 = default value)

调用带VB.NET可选参数的过程

过程在运行时无法检测到给定的参数是否已被省略,或者调用代码是否已显式提供默认值。如果需要弄清楚这一点,可以设置一个不可能的值作为默认值。下面的过程定义了可选参数 office,并测试其默认值 QJZ 以查看它在调用中是否已被省略:

Visual Basic

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")

If office = "QJZ" Then

Debug.WriteLine("office not supplied -- using Headquarters")

office = "Headquarters" End If

' Insert code to notify headquarters or specified office.

End Sub

如果可选参数是像 String 这样的引用类型,只要它不是该变量所预期的值,就可以使用 Nothing 作为默认值。

VB.NET可选参数和重载

定义带可选参数的过程的另一种方法是使用重载。如果有一个可选参数,可以定义过程的两个重载版本,一个接受此参数,另一个则不带参数。此方法随可选参数数目的增加而变得更复杂。然而,这样做的优点是可以完全确定调用程序是否提供了每个VB.NET可选参数。

一个C++的DLL在vb.net或C#中调用问题

建议用CLRInsideOut这个软件自动声明。这是我用它翻译成vb.net声明的结果:

System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)  _

Public Structure tagRECT

'''LONG-int

Public left As Integer

'''LONG-int

Public top As Integer

'''LONG-int

Public right As Integer

'''LONG-int

Public bottom As Integer

End Structure

System.Runtime.InteropServices.DllImportAttribute("Unknown", EntryPoint:="dMain")  _

Public Shared Sub dMain(ByVal pImage As System.IntPtr, ByRef rcRoi As tagRECT, ByVal w As Integer, ByVal h As Integer, ByVal PlateCharacters As System.IntPtr, ByRef rectPlateLocation As tagRECT, ByRef PlateReliability As Integer, ByVal nMod As Integer)

End Sub

把里面的Unknown换成你用的dll名称

用C语言如何写DLL动态链接库?VB.net 又如何调用其生成的DLL库?急急急!!!!在线等!!

这是我以前的回答,是个两数加法的例子,看了就明白了

你的dll不必用h头文件,你用的是显式声明导出函数

vc在显式声明函数时会出现与vb不匹配的问题,他会把函数名改了,你必须用隐式声明,就是def文件声明才可以。

你的cpp里直接写

int __stdcall add(int a, int b)

{

return (a+b);

}

然后再在工程里添加一个文本文件,注意,文件名是 makedll(如果不对就是工程名).def

里面写

LIBRARY makedll

EXPORTS

add @1

然后保存

编译、连接

得到的dll就是vb可以调用的了

vb里呢,不用怎么改

如下

Public Declare Function add Lib "makedll.dll" (ByVal a As Integer,ByVal b As Integer) As Integer

Private Sub Command1_Click()

Dim c As Integer

c = add(1, 2)

MsgBox c

End Sub

这有就应该没问题了

vs2005中 c++怎样调用vb.net生成的dll

1、先引用你的dll(不要说你不知道怎么引用)

2、using你dll的命名空间

3、在代码中声明dll中的类(如:Lyric * l = new Lyric();)

4、接着开始编程

假如你的dll中的Lyric类有GetLyric(FileName)的方法,就直接写上去就可以了(如:String * s = l.GetLyric("C:\\1.lrc");)

如果你是要在C++中编辑这个已经生成的DLL,那是不可能的

我不是很会c++,有无法错误自己改


新闻名称:c调用vb.net过程 c++调用vb
网址分享:http://jkwzsj.com/article/ddoppei.html

其他资讯