函数参考FuncName @ Number,@ X是什么意思?

时间:2017-03-13 06:20:27

标签: c++ compilation

我最近使用WinSock编写代码,当我尝试调用WSAStartup时,编译器抛出了这个错误:

  

对WSAStartup @ 8'

的未定义引用
我之前处理过这类问题,它们并不是什么大问题,我一定错过了一个定义或者其他什么。但是,这个主题是针对不同的主题: @ 8是什么意思?

如果您尝试编译没有main函数的文件,它会抛出:

  

对WinMain @ 16'

的未定义引用

再次,臭名昭着的@Number。我试着在网上查一下,但说实话,我不知道从哪里开始,因为我最终得到的是编译错误的解决方案,与@ 16或@ 8或@的原点无关X

我一直在想的另一件事是,引用的是什么:

  

`东西'

为什么起始报价与结尾报价不同?并且首先使用反引号(`)是什么意思?

1 个答案:

答案 0 :(得分:2)

数字是它的函数参数的字节。

来自MSDN

  

对于__stdcall函数,名称包括" @"字符和十进制数,指定其函数参数中的字节数。例如,LoadLibrary函数的修饰名称是LoadLibrary @ 4。对于C ++函数,名称修饰更复杂,因编译器而异。