VB6函数名中&符号的重要性?

Ick*_*ter 15 vb6 sigils

我刚刚收到了一堆遗留的VB6(!)代码,我不断看到在名称末尾用符号声明的函数,例如Private Declare Function ShellExecute& . . ..

我一直无法找到对此重要性的答案,也无法检测到任何使用的模式或已经命名的函数的签名.

任何人都知道那些尾随的&符号对编译器意味着什么,或者至少是否有一些我缺少的约定?到目前为止,我将其作为一个奇怪的程序员写下来,但我想知道它背后是否有任何意义.

Phi*_*ard 20

这意味着该函数返回Long(即32位整数)值.

它相当于

Declare Function ShellExecute(...) As Long
Run Code Online (Sandbox Code Playgroud)

后缀的完整列表如下:

Integer %
Long    &
Single  !
Double  #
Currency @
String  $
Run Code Online (Sandbox Code Playgroud)


Mar*_*all 12

正如Philip Sheard所说,它是Long的标识类型.它们仍然存在于.Net中,请参阅此MSDN链接和此VB6文章

从第二篇文章:

形成有效VB变量名的规则如下:

(1)第一个字符必须是字母A到Z(可以使用大写或小写字母).后续字符可以是字母,数字或下划线(_)字符(不允许使用空格或其他字符).

(2)最终字符可以是"类型声明字符".只有部分变量类型可以使用它们,如下所示:

Data Type  Type Declaration Character  

String         $  
Integer        %  
Long           &  
Single         !  
Double         #  
Currency       @    
Run Code Online (Sandbox Code Playgroud)

不鼓励在VB中使用类型声明字符; 现代风格是在数据声明语句中使用"As"子句.