C# 如何从VB.Net或C中传递LPCSTR*以使用ActainUserAgentString

C# 如何从VB.Net或C中传递LPCSTR*以使用ActainUserAgentString,c#,.net,vb.net,winapi,C#,.net,Vb.net,Winapi,这是我的代码,我得到了错误输入参数 Imports System.Runtime.InteropServices Module Module1 Private Declare Function ObtainUserAgentString Lib "urlmon.dll" (ByVal dwOption As Integer, ByRef pcszUAOut As String, ByRef cbSize As Integer) As Integer Sub Main()

这是我的代码,我得到了错误输入参数

Imports System.Runtime.InteropServices

Module Module1
    Private Declare Function ObtainUserAgentString Lib "urlmon.dll" (ByVal dwOption As Integer, ByRef pcszUAOut As String, ByRef cbSize As Integer) As Integer
    Sub Main()
        Dim c As String
        Dim ptr As IntPtr = Marshal.StringToHGlobalUni(c)
        Dim useragent As String
        Dim size As Integer
        Dim result As Integer
        result = ObtainUserAgentString(0, useragent, size)

        'Try
        'result = ObtainUserAgentString(0, ptr, size)
        'Finally
        '    Marshal.FreeHGlobal(ptr)
        '    'End Try
    End Sub
End Module
显示
actainUserAgentString
函数定义为:

c#

[DllImport(ExternDll.Urlmon,ExactSpelling=true,CharSet=System.Runtime.InteropServices.CharSet.Ansi,BestFitMapping=false,ThrowOnUnmappableChar=true)]
私有静态外部MS.Internal.Interop.HRESULT获取用户代理字符串(int-dwOption,StringBuilder-userAgent,ref-int-length);
vb.net

_
私有共享函数获取UserAgentString(dwOption为整数,userAgent为StringBuilder,ByRef长度为整数)为MS.Internal.Interop.HRESULT
端函数
所以你问题的答案是