草庐IT

c++ - Win32 窗口创建失败?

我进行了研究,但找不到答案。我找到的最接近的是“Cannotcreatewindow”,但它对我没有帮助。所以,就在这里!基本信息我有一个静态库和一个使用静态库的应用程序。我正确地将应用程序连接到静态库(包括目录、库目录、实际库依赖项等)。在静态库中,我有1个文件:IWindow.h。在应用程序中,我有3个文件:Main.cpp、WindowMain.h和WindowMain.cpp。IWindow.h定义了一个抽象窗口类:#ifndefIWINDOW_H#defineIWINDOW_H#includenamespaceNamespaceName{templateclassIWindo

c++ - 如何通过 Windows API 获取文件夹大小

这个问题在这里已经有了答案:HowcanIfindthesizeofallfileslocatedinsideafolder?(13个答案)关闭9年前。在Windows操作系统上,我们可以使用右键单击文件夹,它会显示包含文件夹大小信息的属性信息。现在,我想使用WindowsAPI来获取文件夹大小,我不想使用FindFirstFile/FindNextFile来枚举所有文件。提前致谢。我尝试了下面的代码,但是,它返回了带有无效数据的大小。HANDLEhFile=CreateFile(tsFolderPath.c_str(),GENERIC_READ,FILE_SHARE_READ,NUL

c++ - 在 C++ 中创建一个只能由我的应用程序访问的文件?

我正在为一个小型办公室开发一个应用程序来维护他们的货币账户。我的应用程序可以帮助创建一个可以存储所有信息的文件。但除我的应用程序外,用户不应访问它。为什么?因为有人可能会删除该文件,所有记录都将消失。环境是一台WindowsPC,具有一个具有管理员权限的帐户。我正在使用MinGW编译器在C++中开发应用程序。关于如何创建这样的文件,我现在有点空白。有什么建议吗? 最佳答案 如果您的应用程序可以修改它,那么运行它的凭据下的用户也可以修改它,就是这样。此外,如果他拥有管理员权限,那么即使您的应用程序在不同的凭据下运行并且文件受ACL保护

c++ - 在类中创建新线程(windows)

我想在一个类中创建一个新线程。问题是当我需要传递一个指向将在新线程中使用的函数的指针时。我无法将指针传递给该函数。引擎盖下的类函数基本上就是这样吧?voidfoo(this);那为什么这段代码拒绝编译呢?classTimeClass{private:DWORDdwThreadId;HANDLEhThread;LPTHREAD_START_ROUTINETimer();public:TimeClass();};TimeClass::TimeClass(){dwThreadId=CreateThread(NULL,0,Timer,this,0,&dwThreadId);}

c++ - 如何在 Windows 8 64 位操作系统中注册 .DLL 文件?

我到处搜索,但没有找到有关如何在Windows864位中注册.DLL文件的结果。看我的this我也尝试了所有方法,然后有人说我必须注册.DLL文件。但是如何呢? 最佳答案 只能注册COM服务器,glut32.dll不是COM服务器。一个标准错误是将32位DLL复制到c:\windows\system32。它们需要被复制到c:\windows\syswow64而不是64位版本的Windws上的32位可执行文件的位置。通常最好避免,弄乱Windows目录总是一个错误。将DLL复制到与EXE相同的文件夹中。最好通过项目中的构建后事件来完成

C++ 将 FILE * 作为参数传递给函数

我想将FILE*传递给另一个函数。在此函数中,使用fread从文件中读取一些字节。不执行写入。我在想该不该说voidDoSomething(FILE*uFile)或voidDoSomething(constFILE*uFile)我害怕在某处引入内存泄漏,并认为const可能更安全。我担心当我不正确地传递它时,该函数可能会创建文件的拷贝。我像这样创建FILE*:FILE*outfile=fopen("c:\\myfile.dat","wb");谢谢。 最佳答案 无论您将FILE*传递给哪个函数,最终都会调用fread/fscanf/f

c++ - 使用 C/C++ 在 Windows 资源管理器中打开目录

我正在用C++制作游戏,我在一个奇怪的位置(安装目录)有一个目录,其中包含使用PrintScreen键截取的游戏截图。我想做的是创建一个按钮,用于打开带有屏幕截图位置的Windows资源管理器。我正在考虑将C的system函数与explorer.exe和一些参数一起使用,但我认为这不是正确的做法。我可能会在全屏模式下禁用此功能,因为我想避免意外行为。 最佳答案 最好的方法是使用SHOpenFolderAndSelectItems()功能。这让您可以打开默认文件夹管理器(即不硬编码到Explorer,尊重用户的选择)并具有让您自动选择

c++ - 为什么 LogonUserW 失败并显示错误代码 183 (ERROR_ALREADY_EXISTS)

我在LogonUserW失败后立即调用GetLastError()来检查错误代码,它总是183,但我不知道为什么LogonUserW会以这样的值失败。查了msdn,发现183(ERROR_ALREADY_EXISTS)的意思是“当那个文件已经存在时无法创建文件”,那么LogonUserW会创建什么文件呢?任何人都可以在这里阐明一些问题吗?if(LogonUserW(uniUserName,uniDomainName,uniPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&token)){//dosomethingwhens

c++ - 将 Unix 可执行文件转换为 Windows 可执行文件

我在MacBookPro上使用Eclipse编译并运行了一个C++程序。我现在需要将Unix可执行文件转换为Windows可执行文件。我该怎么做?具体来说,如何让此代码从命令提示符在Windows机器上运行? 最佳答案 让unix可执行文件在Windows系统上运行的唯一方法是使用虚拟机(类似于VMWare或VirtualBox)。当然,这并不是真的在Windows上运行它,而是在Windows上设置UNIX系统并在该UNIX系统上运行它。两个系统之间的可执行文件(和所需的运行时环境)有很大不同,您不能只从一个系统运行另一个系统的可

c++ - Windows 与 Linux - 数学结果差异

我有C++程序。如果我运行相同的代码部分,Linux和Windows会给出不同的结果。#include#include#include#defineMPI3.141592653589793238462#defineDEG_TO_RAD(x)((x)*0.0174532925)#definecot(x)(1.0/tan(x))#definesec(x)(1.0/cos(x))doublep1=DEG_TO_RAD(35);doublep2=DEG_TO_RAD(65);doublelambertN=log(cos(p1)*sec(p2));lambertN/=(log(tan(0.25*