jjzjj

smart-pointers

全部标签

c++ - tr1::unique_ptr 和 SelectObject()

我有一些像这样管理异常安全的原始代码:voidfoo(){HDChdc=//getanHDCHBITMAPhbitmap=//getanHBITMAPHGDIOBJhbitmapOld=SelectObject(hdc,hbitmap);try{//dosomethingthatmaythrowanexception}catch(...){SelectObject(hdc,hbitmapOld);throw;}}现在我想摆脱tryblock并使用unique_ptr自动选择旧位图。所以我写了这样的东西:voidfoo(){//...//HGDIOBJisdefinedasvoid*st

python doc 到 docx 转换,comtypes.Documents.Open 抛出 ValueError : NULL COM pointer access

背景我有一个应用程序,我想在其中将.doc转换为.docx。之后处理.docx文件以进行数据挖掘。最终用户使用Web界面访问此服务。Web应用程序是在Django1.6中开发的。要将.doc转换为.docx,我们需要安装了MSOffice的Windows平台。话虽如此,我有一个正在运行的AWSWindowsServer2012R2实例(它是Windows64位)。我将Apache(64位)与mod_wsgi和Python2.7.8(64位)一起使用。现在,这是我将.doc转换为.docx的代码importtempfile,sysimportcomtypes,comtypes.clien

windows - 我必须在 CComPtr 对象上调用 Release() 方法吗?

我正在使用SAPI5API处理文本到语音。如果我简化我的代码如下所示(我删除了错误检查以尽可能简化它):intmain(){CoInitialize(NULL);CComPtrspVoice;spVoice.CoCreateInstance(CLSID_SpVoice);...CoUninitialize();return0;}由于某些奇怪的原因,如果我不调用spVoice.Release(),我的代码就会崩溃。所以上面的代码崩溃了,但是这段代码工作得很好:intmain(){CoInitialize(NULL);CComPtrspVoice;spVoice.CoCreateInsta

c++ - WM_POINTER 和高 DPI 设置

我已经在桌面触摸屏上使用Windows8TouchAPI(WM_POINTERDOWN/WM_POINTERUPDATE/WM_POINTERUP)工作了一段时间.然后我在Windows8平板电脑上尝试了我的测试程序,发现我的应用程序无法准确检测到用户触摸屏幕的位置。另一方面,使用鼠标效果很好:我得到了正确的坐标。由于我启用了EnableMouseInPointer(TRUE)模式,这意味着正在使用相同的代码来处理鼠标事件和触摸事件,这至少意味着我的代码在某种程度上可以正常工作。我发现,平板电脑启用了高DPI模式,使用户可以触摸屏幕上本来很小的东西。当我更改平板电脑上的DPI以消除缩放

c++ - 我可以在 std::map 中使用 CComPtr 吗?

我正在用C++在WindowsCOM中编写一个程序,我正在使用CComPtr作为智能指针。我找不到答案的问题是-我可以在std::map中使用CComPtr吗?我有以下代码片段(已简化):std::map>ErrorMap;我希望维护int和IErrorInfo错误信息之间的映射。但是我不确定我是否可以执行以下操作:CComPtrresult;GetErrorInfo(0,&pErrInfo);ErrorMap.insert(std::make_pair(0,result));我担心result智能指针的所有权,以及当ErrorMap被销毁时它是否会正确释放?

c# - PInvoke C# : Function takes pointer to function as argument

我想在我的C#代码中访问这个函数,这可能吗?所以最后C++代码会调用我的函数并应用名为“sFrameofData”的结构。C++代码://Theusersuppliedfunctionwillbecalledwheneveraframeofdataarrives.DLLintCortex_SetDataHandlerFunc(void(*MyFunction)(sFrameOfData*pFrameOfData));这也许行得通吗?C#代码:[DllImport("Cortex_SDK.dll")]publicexternstaticintCortex_SetDataHandlerFu

c# - VS 2008 Professional,Smart Device .NET C# 项目 - 构建缓慢

我有VS2008Professional和一个智能设备.NETC#项目。我总共有~100个cs文件。构建需要很长时间,我必须等待链接器大约。每次编译项目时1分钟(60秒)。我有Corei3、4GBRAM、7200rpm磁盘。是什么原因造成的,我该如何优化构建?任何VisualStudio选项? 最佳答案 如果您遵循HansPassant的评论中的建议并将MSBuild设置为诊断输出,它将更清楚地说明什么正在花费时间。如果您发现您的构建在许可编译器(LC.exe)上挂起,那么这可能是因为它试图调用服务器并超时。您可以通过更改您的mac

C# P/调用 : Marshalling structures containing function pointers

对于接下来冗长的介绍,我们深表歉意。我需要比我更了解P/Invoke内部结构的人的见解。以下是我如何将包含函数指针的结构从C编码到C#。我想知道这是否是最干净和/或最有效的方式。我正在与一个用C编码的nativeDLL交互,它提供以下入口点:void*getInterface(intid);您必须传递getInterface(int)以下枚举值之一:enumINTERFACES{FOO,BAR};它返回一个指向包含函数指针的结构的指针,例如:typedefstructIFOO{void(*method1)(void*self,inta,floatb);void(*method2)(vo

javascript - IE EDGE "pointer-events: none"无法处理 span 标签

在IEEDGE中,当pointer-events:none;应用于span标签时,它似乎不起作用,当添加javascriptclick事件时,e.target是span而不是parent。HTMLSomethinginaspanblahblahCSS.childspan{pointer-events:none;}JS$(document).click(function(e){console.info(e.target);});完整的Codepen示例:https://codepen.io/JoeHastings/pen/gWgzgK 最佳答案

javascript - 将样式 "cursor: pointer"应用于所有具有 onClick 功能的 React 组件

我想将样式cursor:pointer应用于所有具有onClick函数的React元素。我知道我可以对每个元素都这样做:Clickme或者这个:Clickme但我更愿意做这样的事情来将样式应用到所有元素:[onclick]{cursor:pointer;}但这行不通,因为在使用React的onClick属性时,元素呈现的HTML中没有实际的onclick属性。fiddle:https://jsfiddle.net/roj4p1gt/ 最佳答案 我不确定是否有一种好的方法可以自动执行此操作,而无需使用某种机制来拦截React元素的创建