重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
当然可以的,需要System.Runtime.InteropServices 命名空间中的 Marshal 类
榕城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
Imports System.Runtime.InteropServices '这里一定要有
Public Class Form1
Public Structure m_Point
Dim x As Integer
Dim y As Integer
End Structure
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer = 50
Dim ai() As Integer = {1, 2, 3, 4, 5}
Dim pi As IntPtr = GCHandle.Alloc(i, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形变量的指针
Dim pai As IntPtr = GCHandle.Alloc(ai, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形数组首地址指针
MsgBox(Marshal.ReadInt32(pi, 0)) '读回整形变量指针指向的值
MsgBox(Marshal.ReadInt32(pai, 0 * 4)) '读回数组的第一个元素
MsgBox(Marshal.ReadInt32(pai, 1 * 4)) '读回数组的第二个元素
MsgBox(Marshal.ReadInt32(pai, 2 * 4)) '读回数组的第三个元素
'-----下面是结构--------------------------
Dim m_p As New m_Point
m_p.x = 100
m_p.y = 50
Dim pm_p As IntPtr = GCHandle.Alloc(m_p, GCHandleType.Pinned).AddrOfPinnedObject() '取得结构首地址指针
MsgBox(Marshal.ReadInt32(pm_p, 0 * 4)) '读回结构的第一个值
MsgBox(Marshal.ReadInt32(pm_p, 1 * 4)) '读回结构的第二个值
End Sub
End Class
其 FileName 属性可以取到点击确定之后的完整路径地址,是带文件名的,再利用 System.IO.Path.GetDirectoryName() 方法就可以取到文件夹路径。
其 InitialDirectory 属性可以设置打开时默认指向的路径。
VB.net运行于CLR上,其变量的地址都是不确定的,生命周期也是不确定的,所以不能获得指针。
不知道你为何要获取变量地址,看看是否可以用其他办法代替。
比较专业的做法是在项目中添加微软的Application Settings类,详细帮助文档:
使用极其简单,假设在settings1.settings设置一个项目,名称:IP,类型:String,范围:用户,值:192.168.1.1
调用:Dim sIP As String = setting.IP
获取缺省值:Dim sIP As String = Settings1.Default.IP
保存: setting.IP = "192.168.1.30" : setting.Save()
可以新建一个Moduel,然后用public声明此变量,这就是全局变量了。
如果在class中,使用的时候要加上此类的名称,如class1.var
保存在config文件里啊,例如你的应用程序是abc.exe,那么你就放一个abc.exe.config文件,把配置参数写到这个文件里,下边是用微软企业库连接数据库的一个config文件的例子。
?xml version="1.0" encoding="utf-8"?
configuration
configSections
section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/
/configSections
dataConfiguration defaultDatabase="Connection String"/
connectionStrings
add name="Connection String" connectionString="Data Source=(local);Initial Catalog=数据库名;Persist Security Info=True;User ID=sa;Password=密码;max Pool Size=1000;" providerName="System.Data.SqlClient" /
/connectionStrings
appSettings /
/configuration