gpt4 book ai didi

c++ - C++如何知道如何转换为特定类型?

转载 作者:行者123 更新时间:2023-12-02 09:47:51 25 4
gpt4 key购买 nike

如果我写

long long int module = (long long int)GetModuleHandle(L"test.dll");
C++如何知道如何转换HMODULE?好像我是对的,HMODULE应该是一个结构。
我了解这对基本类型(例如int,float等)如何起作用,但是
对于程序员生成的代码,必须像翻译一样,对吗?

最佳答案

嗯,除非代码告诉它如何操作(例如通过转换运算符或构造函数),否则它不会真正实现。
对于原始数字事物,有一些内置规则,例如intfloatvoid*int……尽管后面的示例只能由reinterpret_cast或像您一样的C样式转换完成。这是因为除非“您最了解”,否则转换并没有真正的逻辑意义,这就是您向编译器 promise 的目标。
确实,与大多数句柄类型一样, HMODULE is actually an alias for a pointer type(具体来说是void*),尽管HMODULE指向的东西通常是某种类类型的。因此,您需要将void*转换为long long int,这是语言规则知道的操作方式(ref 1ref 2)。

关于c++ - C++如何知道如何转换为特定类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63783816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com