13

我正在使用 TypeLib 创建一个用于经典 ASP 应用程序的 GUID。然而,即使是一个简单的测试,例如将 GUID 写到屏幕上,也会给我带来问题——它会打印 GUID,但会忽略它之后的所有内容(例如 HTML 标记、附加词、任何内容)。

这是测试它的基本代码:

Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing

这将显示类似{9DDB27D1-F034-41D7-BB88-D0D811DB91CE}的内容,仅此而已;文本的其余部分被忽略并且没有写出。但是,如果我对该 GUID 值进行硬编码并从变量中引用它,则文本的其余部分看起来就很好。我已经尝试在显示之前显式转换为字符串值,但它仍然会发生。

4

4 回答 4

13

我似乎已经解决了我自己的问题.. 它在文本中添加了一些额外的东西,所以我必须这样做:

myGuid = Left(myGuid, Len(myGuid)-2)

现在输出正常。奇怪的。

于 2009-01-05T15:31:19.280 回答
4

我用这样的东西

Function GetGuid() 
        Set TypeLib = CreateObject("Scriptlet.TypeLib") 
        GetGuid = Left(CStr(TypeLib.Guid), 38) 
        Set TypeLib = Nothing 
End Function 
于 2010-10-08T20:16:19.850 回答
3

它在 GUID 的末尾添加一个 vbNullChar 或 Chr(0)。Replace(myGuid, Chr(0), "") 将修复它。比使用 Left 或 Mid 函数更好。

于 2013-12-15T11:38:41.010 回答
-2

GUID 是一个结构而不是字符串,您需要添加一个 ToString() 方法以将其输出为字符串。

https://msdn.microsoft.com/fr-fr/library/97af8hh4(v=vs.110).aspx

Response.Write myGuid.ToString("D")
于 2009-01-05T15:12:31.830 回答