十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
对不起,我没有学过vb.net,但是学过vb,希望这个可以
创新互联公司成都企业网站建设服务,提供成都做网站、成都网站制作网站开发,网站定制,建网站,网站搭建,网站设计,响应式网站设计,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:18982081108
解决您程序的毛病。首先您注意以下两种GetClientRect
声明的方法:
Option Explicit
Private Declare Function GetClientRect Lib "user32" ( _
ByVal hwnd As Long, _
ByRef lpRect As RECT _
) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Form_Load()
Dim r As RECT
Me.AutoRedraw = True
GetClientRect Me.hwnd, r
Print r.Left
Print r.Right
Print r.Top
Print r.Bottom
End Sub
----------------------------------------------------------------------------
Option Explicit
Private Declare Function GetClientRect Lib "user32" ( _
ByVal hwnd As Long, _
ByVal lpRect As Long _
) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Form_Load()
Dim r As RECT
Me.AutoRedraw = True
GetClientRect Me.hwnd, VarPtr(r)
Print r.Left
Print r.Right
Print r.Top
Print r.Bottom
End Sub
看出问题了没有,就在GetClientRect的第二个参数上:
一个是按地址传递,另一个是按值传递:
ByRef lpRect As RECT 用 GetClientRect Me.hwnd, r
ByVal lpRect As Long 用 GetClientRect Me.hwnd, VarPtr(r)
据我所知vb.net按值传递的比较多,应该用VarPtr获取RECT类型
(结构体)的指针,然后传递。
希望能对你有所帮助。
这说明你调用 API 传参存在问题。
首先有没有设置结构体内存对齐?
[StructLayout(LayoutKind.Sequential)] 加了吗?
COLORREF 不要用 Color 代替,用 int 代替
TCHAR cfFaceName[32] 定义为 Byte 数组也可以,带在传参前,必须初始化为 32 个长度
有两种办法。
方法一、创建一个 MSXML2.DOMDocument 对象,把这个文件Load进来,按照教科书上的步骤处理。这个对象名并非唯一,依据你电脑上的MSXML版本而定。你在引用中查一下。
方法二、将这个文件当做一个普通的文本文件来处理。将它完整的读入到一个字符串中,依据节点名用Split()函数将它分段,提取所需的内容。
两种方法都不复杂,尝试一下吧。
说明该dll不支持win7系统,根据我的经验一般说“尝试读取或写入受保护的内存”是Dll内部代码引发了异常,这种情况有两种,一是dll有BUG,二是对应操作系统不正确。
要是连接设备的Dll就到设备制造商的官网下载对应平台的dll就ok
Public Declare Function GetCardInfo Lib " feitnccmclient.dll" (Byval personCode As string,Byval servername As string) As string
改为
Public Declare Function GetCardInfo Lib " feitnccmclient.dll" (Byref personCode As string,Byref servername As string) As string
试试
vb.net 有专门的托盘图标控件 在工具箱里直接添加一个就可以了 两行代码即可
NotifyIcon1.Icon = Me.Icon
NotifyIcon1.Visible = True