当前位置: 代码迷 >> VB Dotnet >> 使用GetWindowsDirectoryA获取当前系统文件夹在X86环境无法运行,怎么修改
  详细解决方案

使用GetWindowsDirectoryA获取当前系统文件夹在X86环境无法运行,怎么修改

热度:321   发布时间:2016-04-25 02:22:20.0
使用GetWindowsDirectoryA获取当前系统文件夹在X86环境无法运行,如何修改?
代码如下:
 Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    '''<summary>获取当前系统文件的路径,x86下无无运行(原因未知)</summary>
    Public Function BackWindowPath()
        Dim SWinDir As String '定义字符变量用来存储路径
        Dim Retn As Long '定义长整型变量存储路径的长度
        SWinDir = Space(255) '设定一个空串,长度为windows允许的最大长度,也可写作:SWidir=String(255,0)
        Retn = GetWindowsDirectory(SWinDir, Len(SWinDir)) '获取windows路径的长度,swindir存储了路径
        SWinDir = Left(SWinDir, Retn) '去掉空白内容。
        Return SWinDir
    End Function

错误如下:


在X86环境下运行出现以上错误,在anycpu环境下正常运行。
系统是win7 64位,请问如何解决?
------解决方案--------------------
用My.Application.Info.DirectoryPath或者"."代替程序所在路径
------解决方案--------------------
Environment.GetEnvironmentVariable("windir")可直接返回windows路径
------解决方案--------------------
System.Environment.SystemDirectory()
  相关解决方案