- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
不确定是否可以这样做。我在下面有一个示例函数需要返回模板
template <class T>
T example(DWORD DW)
{
PVOID buffer;
// my code is here sets the buffer
return static_cast<T>(&buffer);
}
想这样用
int iReturn = example<int>(dwSomeDword);
最佳答案
buffer
的类型是void*
.因此,使用地址运算符:&buffer
给你一个 void**
.和 void**
不能static_cast
进入T
(除非您碰巧实例化了 example<void**>
,但即便如此,返回的指针也会悬空)。
这在句法上是正确的:
return *static_cast<T*>(buffer);
该程序将 void 指针转换为指向 T
的指针然后取消引用它。但是不需要这种诡计。只需创建一个 T
首先,对其进行操作,然后将其返回:
T result;
// my code is here sets the result
return result;
这有很多好处。编译器会为您处理内存别名并正确构造结果。这也使命名返回值优化成为可能,从而允许省略拷贝。
关于c++ - 返回 PVOID 的模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181100/
我在 MS 代码示例中看到下一个代码: PVOID alignedBuffer[BUFFER_SIZE/sizeof( PVOID )]; PCHAR buffer = (PCHAR) aligned
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: what is pvoid 嗨, PVoid 与 void* 相同吗?我想知道如何将 pvoid 传递给函数。 说
不确定是否可以这样做。我在下面有一个示例函数需要返回模板 template T example(DWORD DW) { PVOID buffer; // my code is her
使用绕行 v3,我收到此错误: argument of type "signed int (Std::*)(int a1, int a2, int a3)" is incompatible with
谁能解释一下 PVOID 是什么以及它是如何在如下函数中使用的: BOOL DoSomething(PVOID pMemPhy) 最佳答案 空指针,同 void *pMemPhy 又名“指向某物的指针
我正在尝试在 FTDI 芯片上创建一个文件,以便我可以写入和输出数据。我从手册中了解到,要创建一个文件,需要编写以下代码行: ftHandleFile = FT_W32_CreateFile((PVO
我想将 HANDLE 和 HWND 变量传递给 _beginthreadex 函数,我不想将这些变量设置为全局变量。 这就是我试过的: int APIENTRY WinMain(HINSTANCE h
我正在读取具有 URB 类型的 USB 数据包。在 http://msdn.microsoft.com/en-us/library/windows/hardware/ff540409(v=vs.85)
我正在从 LabView 调用一个用 C++ 编写的 DLL。函数原型(prototype)为: ULONG DAQ_Open(PVOID *pHandle); 如何从 LabView 传递正确的参数
我正在尝试使用 SetParametersInfo 函数更改墙纸。我想将墙纸的文件路径作为变量传递,但每当我尝试这样做时,我都会收到错误 Error: no suitable conversion f
这只是一个简单的问题。我一直在使用 DetourAttach(&(PVOID &)BindKeyT, BindKeyD); 读取附加到子例程内存地址的东西的源代码,其中 BindKeyT 是地址到内存
Windows 似乎找不到任何这些类型,我完全不知所措。我在 MSDN 上找到的东西似乎表明默认情况下包含它们,但它们在 native 程序或 CLR 程序中不起作用。 我遇到的具体错误是: ".cp
我正在试验 Windows 驱动程序并使用 Microsoft 的驱动程序代码示例(确切地说是 Minispy)。不幸的是,我是 C++ 的新手,尤其是驱动程序开发。 在将用户模式应用程序从 C 转换
我正在编写一个程序(好吧......使用来自 Tektronix 的示例代码)来测试通过网络与我们实验室的频谱分析仪进行的消息交换。 已提供名为“decl-32.h”的头文件,示例代码中有以下行,以及
我是一名优秀的程序员,十分优秀!