草庐IT

C++智能指针之unique_ptr

全部标签

windows - 如何将低级命令(非 APDU)发送到 Windows 10(移动)上的智能卡?

我正在根据NFCExample编写代码Microsoft提供。Windows.Devices.SmartCards中的所有内容关于APDU命令。例如,TransmitAsync方法描述为:Asynchronouslytransmitsthesuppliedapplicationprotocoldataunit(APDU)commandandreturnstheresponse.但是,由于这是一个带有字节数组参数的方法,我认为我可以通过使用这个方法来摆脱APDU。我在文件CardReader.xaml.cs中插入了一些代码:privateasyncTaskHandleCard(Smart

代码在 Windows 中有效,但在 Linux 中无效!为什么? 【简单的指针问题】

这是运输问题的工作代码片段(删除了实际功能。这里只有输入和输出功能。顺便说一句,这是不正确的)#include#includetypedefstructtransport{intcost;intalloc;}TRAN;voidproblem_input(TRAN**,int*,int*,int,int);voidproblem_display(TRAN**,int*,int*,int,int);intmain(){intn_dest;intn_org;inti;intj;printf("\n\n\tEnterNumberOfDestinations:");scanf("%d",&n_d

windows - 为什么系统在使用指针 Windows 时分配更多内存?

我使用HeapAlloc分配大量内存,例如400MB,但是当我检查程序的内存使用情况时,它实际上使用了1GB。//configuraciones.h#defineANCHO_MUNDO5000#defineALTO_MUNDO5000//unidades.cppunidad*unidades_memoria=(unidad*)HeapAlloc(heap,//UserHeapNULL,ANCHO_MUNDO*ALTO_MUNDO*sizeofunidad);unidad***unidades=newunidad**[ANCHO_MUNDO];//DefaultHeapfor(inti=

c++ - 如何将 IStream 实例中的数据读入 char 指针?

我试图从我的IStream实例中复制一些二进制数据(因为Gdiplus::Image只保存到IStream派生对象或文件路径)到一个字符指针,我可以通过知道分配的二进制文件从中简单地读取大小并可以访问指针。我的类如下:Upload::Upload(Gdiplus::Bitmap*bitmap,CLSIDclsEncoderId){intresult;STATSTGstatResult;result=CreateStreamOnHGlobal(0,TRUE,&m_hBufferStream);if(result!=S_OK)MessageBoxW(NULL,_T("Upload::Upl

c++ - 智能感知 : identifier "[blank]" is undefined for each of the variables used in my function

我正在使用VisualStudio。当我尝试编译我的代码时,对于“hexISOS”函数中使用的每个变量,我收到一条错误消息,提示21“IntelliSense:标识符“[blank]”未定义”。我稍后在代码中定义了这些变量,想知道是否有人可以告诉我哪里出了问题。我的代码是这样的:#include#includeusingnamespacestd;inthexISOS(doubleAX,AY,BX,BY,CX,CY,DX,DY){longdoublesol1,sol2;boolans;sol1=sqrt(pow((AX-CX),2)+pow((AY-CY),2));sol2=sqrt(p

c++ - 如果 EBP 帧指针为 NULL,堆栈是否已损坏?

我对堆栈跟踪的理解基本上是基于Whatisexactlythebasepointerandstackpointer?Towhatdotheypoint?.多年来我一直在帮助开发的一个程序在崩溃时会吐出一个堆栈转储,我已经习惯于根据C++编译器生成的.map文件来评估这些堆栈跟踪。很多次,我都成功地遍历了堆栈并调试了问题。但是,有时堆栈跟踪有一个NULLEBP(帧)指针。以下是此类示例堆栈转储中的相关片段:InitialEBPpointervalue:04d8fab0{ataddress04d8fab0:00000000}可以看到,EBP帧指针的值为NULL。因此,我不能走堆栈。这是堆栈

c++ - 非分页内存指针

我声明了2个结构:structirp_list{IRP*irp;LIST_ENTRYlh;};和structdev_info{...LIST_ENTRYlh;...};我在DriverWrite函数(IRP_MJ_WRITE)中做:structirp_list*il;structdev_info*di=(structdev_info*)device->DeviceExtension;if(!(il=ExAllocatePool(NonPagedPool,sizeof(*il)))){ret=STATUS_NO_MEMORY;DbgPrint("[uart]UartWritecan'th

c++ - 确保 Windows 正确初始化指向导入函数的函数指针所需的条件是什么?

导入库的实现方式——在here中有描述。—令我感到惊讶的是,指向导入函数的函数指针从未被初始化。据说——来自ahighlyacclaimedarticle—这些函数指针以某种方式被视为IAT中的一个条目,以便Windows及时适本地初始化它们。这些看起来像普通函数指针的函数指针有什么特别之处,使得编译器将它们视为IAT中的一个条目? 最佳答案 C++编译器可以通过两种方式实现在C++代码中声明的函数指针,这些函数指针使用指向导入函数的指针进行初始化。对于C++编译器,最简单的方法是用导入库中stub函数的地址初始化指针。或者,它可以

c++ - VBA 64 位 Excel 不将指针传递给 DLL 函数 (C++)

我有一个在Excel64位上运行的VBA程序调用一些DLL函数(C++)。问题是(显然)它不能将指针传递给C++程序。该程序适用于Excel32位。操作系统是Windows8。对于Windows7,32位和64位版本的Excel都运行良好。C++:doubletest(long*v,longi){if(v==NULL)return-88;elsereturn*((long*)v);}VBA:PrivateDeclarePtrSafeFunctionhamid_testLib"...\CVode.dll"(ByValvAsLongPtr,ByValiAsLong)AsDoubleDimx

java - 使用 Java 的 SunMSCAPI/Windows-MY 访问用于 TLS/SSL 连接的智能卡证书与客户端身份验证

我有一个Java应用程序,它使用智能卡中的证书进行TLS/SSL客户端身份验证。智能卡有2个证书,一个用于签名,另一个用于身份验证。我就是这样做的://loadingwindows-mystoreKeyStorewindowsMyKeyStore=KeyStore.getInstance("Windows-MY","SunMSCAPI");windowsMyKeyStore.load(null,null);//loadingkeymanagerKeyManagerFactorykeyManagerFactory=KeyManagerFactory.getInstance(KeyMana