鱼C论坛

 找回密码
 立即注册
查看: 1144|回复: 4

[已解决]我对delphi并没有什么了解,想问问:: 是什么意思?

[复制链接]
发表于 2023-4-17 16:16:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 老坚果 于 2023-4-17 16:17 编辑

我对delphi并没有什么了解,但是在样本分析的时候,遇到了下图中的函数。我想请教一下,为什么上面的是空格而下面的是两个冒号?这两个冒号是表示属性吗?接两个冒号和接空格有什么区别吗?
tempsnip.png
最佳答案
2023-4-17 17:12:16
老坚果 发表于 2023-4-17 17:02
我理解您说的下面那条函数的用法了。但是我还没太理解上面那条代码的用法,上面那条代码是这样的:

...

抱歉之前的解释可能让您感到困惑。现在我明白您的问题了。在这个特定的情况下,System::__linkproc__ 和 ClassCreate() 之间的空格表示这是一个修饰符(Modifier),类似于 C++ 中的修饰符。

System::__linkproc__ 是一个修饰符,它用于说明函数 ClassCreate() 的链接属性。在这里,System::__linkproc__ 表示该函数是由系统库提供的,并且与某些底层操作有关。这种修饰符的使用通常用于在不同编译单元间链接函数,或者用于链接不同语言编写的函数。

所以,在这个例子中,System::__linkproc__ 是一个修饰符,而 ClassCreate() 是函数名。这里的空格表示它们之间的关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-17 16:28:44 | 显示全部楼层
Delphi 是一种编程语言,以及与之相关的软件开发工具。Delphi 主要用于开发 Windows 平台的桌面应用程序。它基于 Object Pascal 编程语言,支持面向对象编程和组件开发。

关于您提到的示例代码:
System::__linkproc__ClassCreate
Classes:TResourceStream:Initialize
这里的双冒号(::)表示名称空间(Namespace)和作用域(Scope)的分隔符。在 Delphi 中,双冒号用于将一个标识符(如类、函数、变量等)与其所属的名称空间或作用域相连接。这有助于避免命名冲突和提高代码可读性。

在上面的示例中,System 是一个名称空间,__linkproc__ClassCreate 是一个函数。同样地,Classes 是另一个名称空间,TResourceStream 是一个类,而 Initialize 是该类的一个方法。

对于您的问题:

  • 上面的是空格而下面的是两个冒号:这里的两个冒号和空格没有直接关系。双冒号用于表示名称空间和作用域的分隔符。与此不同,空格通常用于分隔代码中的元素,比如变量声明和函数调用。
  • 接两个冒号和接空格有什么区别?:如前所述,双冒号表示名称空间或作用域分隔符,而空格主要用于分隔代码中的元素。这两者在语法上具有不同的作用,不能互换。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-17 17:02:11 | 显示全部楼层
本帖最后由 老坚果 于 2023-4-17 17:03 编辑
isdkz 发表于 2023-4-17 16:28
Delphi 是一种编程语言,以及与之相关的软件开发工具。Delphi 主要用于开发 Windows 平台的桌面应用程序。 ...


我理解您说的下面那条函数的用法了。但是我还没太理解上面那条代码的用法,上面那条代码是这样的:
System::__linkproc__  ClassCreate((int)hModule, (char)lpType);
这个System::__linkproc__和ClassCreate()之间是用空格分隔开的。 System::__linkproc__ 是函数的属性,而 ClassCreate() 则是函数名,我可以这样理解吗?还是别的,您能在讲讲吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-17 17:12:16 | 显示全部楼层    本楼为最佳答案   
老坚果 发表于 2023-4-17 17:02
我理解您说的下面那条函数的用法了。但是我还没太理解上面那条代码的用法,上面那条代码是这样的:

...

抱歉之前的解释可能让您感到困惑。现在我明白您的问题了。在这个特定的情况下,System::__linkproc__ 和 ClassCreate() 之间的空格表示这是一个修饰符(Modifier),类似于 C++ 中的修饰符。

System::__linkproc__ 是一个修饰符,它用于说明函数 ClassCreate() 的链接属性。在这里,System::__linkproc__ 表示该函数是由系统库提供的,并且与某些底层操作有关。这种修饰符的使用通常用于在不同编译单元间链接函数,或者用于链接不同语言编写的函数。

所以,在这个例子中,System::__linkproc__ 是一个修饰符,而 ClassCreate() 是函数名。这里的空格表示它们之间的关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-17 17:16:59 | 显示全部楼层
isdkz 发表于 2023-4-17 17:12
抱歉之前的解释可能让您感到困惑。现在我明白您的问题了。在这个特定的情况下,System::__linkproc__ 和  ...

谢谢谢谢,解决了我的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 19:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表