草庐IT

C++智能指针之unique_ptr

全部标签

c++ - 错误 C2065 : 'DWORD_PTR' : undeclared identifier

编译时#include"windows.h"#include"stdafx.h"#include"resource.h"#include"ProgressDlg.h".......rItem.lParam=(LPARAM)(DWORD_PTR)m_lsStatusMessages.back().c_str();IamgettingtheerrorC2065:'DWORD_PTR':undeclaredidentifier我是否遗漏了任何包含内容。 最佳答案 #include"windows.h"#include"stdafx.h"假

windows - 是否可以在不使用 Bitblt 的情况下使用指针直接(低级别)写入窗口?

我编写了一个立体滤镜,可以将两幅图像混合成一幅立体图像。这是一次处理一个像素的快速例程。现在我正在使用指针将每个计算出的像素输出到内存位图,然后将整个图像通过Bitblt传输到窗口上。这对我来说似乎是多余的。我宁愿将每个像素直接复制到屏幕上,因为我的浮雕例程非常快。是否可以绕过Bitblt并简单地将指针指向Bitblt将其复制到的位置? 最佳答案 我相信这是可能的,但你真的真的不想这样做。一次绘制整个图案效率更高。 关于windows-是否可以在不使用Bitblt的情况下使用指针直接(低

c - 如何获得某些 Visual Basic 6 控件的 IUnknown* 指针(如果有)?

我想从带有IUnknown*的VisualBasic6程序中调用一些C函数。假设我知道我的VB6应用程序中的某些控件是ActiveX控件,我能否从中获取底层IUnknown*(可能通过转换?)将其传递给C函数? 最佳答案 所有COM接口(interface)都派生自IUnknown,您可以在任何有效的接口(interface)指针上使用IUnknown方法。如果您需要对同一组件的额外引用,但不关心是哪个接口(interface),则使用IUknown的QueryInterface方法。

c - 在 vtbl 中命名函数指针

抱歉,初学者的问题。在非常好的文章中CominplainC我读到这句话:OnerequirementofaCOMobjectisthatthefirstthreemembersofourVTable(i.e.,ourIExampleVtblstruct)mustbecalledQueryInterface,AddRef,andRelease.这是真的吗?如果更改名称,但参数、调用约定和返回值将相同怎么办?你还在做这个吗?如果不是,为什么?非常感谢您的回复。(正面或负面。) 最佳答案 每个COM接口(interface)都必须派生自I

c++ - 在 WM_CREATE 中设置接口(interface)指针,在 WM_COMMAND 中变为 NULL

我正在学习COM,目前没有遵循任何特定的架构,我正在加载我自己的库而不是使用COM引擎。我在WM_CREATE中加载我的库,创建指向ISum的接口(interface)指针,hServerLib=LoadLibrary(TEXT("QIPropertiesServer.dll"));if(hServerLib==NULL){MessageBox(hwnd,TEXT("RequiredLibrarycouldnotbefound"),TEXT("Error!!"),MB_OK);DestroyWindow(hwnd);}pfnCreateComponentInstance=(PFN_FU

c# - 测试鼠标指针在什么屏幕上

我是一名JS/Node开发人员,我的C#经验为零。我认为编写一个我可以从节点运行以截取屏幕截图的exe文件会非常简单。问题是我只对鼠标光标当前所在的屏幕感兴趣。我找到了以下代码来截取屏幕截图,但它只处理主屏幕。Rectanglebounds=Screen.GetBounds(Point.Empty);System.Diagnostics.Debug.WriteLine("asdf"+bounds.ToString());using(Bitmapbitmap=newBitmap(bounds.Width,bounds.Height)){using(Graphicsg=Graphics.F

windows - 可以在VIsual Studio 2015 Professional中创建智能设备项目吗

我很快就会得到VS2015Pro。我可以为WindowsCE版本5和6创建智能设备项目吗? 最佳答案 不,你不能。VisualStudio2010doesnotsupportWindowsPhoneOS7.0之前的WindowsPhone版本的移动应用程序开发。2015也不支持。您必须使用VisualStudio2008.Here'ssomedownloadlinks,并且不要忘记服务包。不同的visualstudio版本共存得很好,现在我安装了3个版本(2008、2012、2013),到目前为止没有任何问题。

c++ - 运算符 "new"仅返回一个类的非本地堆指针?

语言:C++平台:WindowsServer2003我有一个调用DLL的exe。编辑:(exe没有做任何事情,它调用了几个全局函数,这些函数在DLL中完成与DLL相关的所有事情。它没有显式新建任何DLL类)我在DLL中为A类分配(新)内存,它返回给我一个非本地堆指针。我尝试新建DLL中的其他类(在DLL中),“new”为它们返回一个有效的堆指针,它唯一的ClassA是没有被正确分配。我在Windows上并通过此函数调用验证堆:编辑:ClassA*pA=newClassA();_CrtIsValidHeapPointer((constvoid*)pA)我很困惑为什么这只发生在new-in

windows - 为导致崩溃的非静态函数指针赋值 - 为什么?

我有一个定义如下的函数:typedefvoid(*logprintf_t)(constchar*format,...);logprintf_tlogprintfvoidmy_function(){logprintf=cast(logprintf_t)0x12345;}它会导致应用程序退出。但是,如果我将logprintf设为静态(我在某处看到过这个技巧),即:voidmy_function(){staticlogprint_tlogprintf=cast(logprintf_t)0x12345;}它不会崩溃。这是语言规则还是某种错误?为什么dmd不警告这个?

c++ - 使用指针创建对象访问冲突错误

所以我刚开始使用C++进行Windows编程。首先我画了一些线,没问题,然后我尝试创建一个类来绘制一些形状,当我使用普通方法创建对象时它工作正常(在代码中这些部分被注释掉),但是当我使用指针创建新对象时,出现了Accessviolation错误。这是我的类(class)(我删除了一些代码,因此在某些部分看起来过于简单):classshapes{public:shapes(void);voidsetstartp(POINT&p0);voidsetendp(POINT&p1);voiddraw(HDChdc);~shapes(void);POINTx0;POINTx1;};shapes::