我正在为win32控制台开发C++应用程序我需要获取我的应用程序目录中的文件列表(例如,如果我的应用程序已在C:\arash\app\中启动,我需要此文件夹中的文件列表)我在windows.h头文件中搜索并找到了FindFirstFile函数,但是这个函数需要一个目录路径。我可以使用这个函数来获取我的应用程序运行目录中的文件列表吗?谢谢 最佳答案 使用带有NULL模块句柄的GetModuleFileName()获取.exe文件的路径和文件名。然后您可以去掉文件名部分,并根据需要使用剩余的路径。
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。当我运行我在QtCreator中创建的程序的发布版本时,它说找不到DLL。所以我将Qtbin文件夹中的所有DLL添加到程序目录中,现在程序没有出现错误,但它无论如何也没有启动?我没有更改QtCreator中的任何编译器设置,我做错了什么?
我将一个应用程序从Linux移植到Windows。在Linux上我使用libmagic在Windows上我不乐意从中删除的库。问题是我需要将以UTF-16编码保存的文件名传递给这样的函数:intmagic_load(magic_tcookie,constchar*filename);不幸的是,它只接受constchar*filename。我的第一个想法是将UTF-16字符串转换为本地编码,但存在一些问题-比如字符串可以包含例如中文符号和本地编码可能是俄语。结果我们将在输出中得到垃圾,程序将无法达到其目标。转换为UTF-8也无济于事,因为这是Windows,Windows以UTF-16格
我在两台不同的机器上工作。一个是Windows,另一个是Linux。如果我在同一个项目上交替工作,但在两个操作系统之间切换,我最终会遇到编译错误吗?我问是因为可能有一个标准支持而另一个标准不支持。 最佳答案 这个问题非常广泛,严格来说,它取决于您的工具链。如果您要使用相同的工具链(例如GCC/MinGW或Clang),您将最大限度地减少此类错误的可能性。如果您在Windows上使用VisualStudio,在Linux端使用GCC或Clang,那么您会遇到更多问题,因为某些header不同。因此,一旦您的程序离开了严格的ANSIC(
在Linux上学习C++编程与在Windows上通过使用LinuxVM学习有什么区别吗?我最初的猜测是没有区别-VM只是像普通的Linux操作系统一样运行?我这样做是为了专攻Linux上的C++编程,包括Linux内核、Linux的工作原理、IPC、套接字、共享内存、管道等。 最佳答案 当您编写多线程程序或对共享数据执行IPC时,您可能会遇到VM的最大问题。不幸的是,由于大多数VM的工作方式,您最终可能会掩盖时间问题,这些问题会导致native运行Linux内核的“真实”机器崩溃,或者至少是不希望的行为。例如,由于在运行时不会崩溃而
我的Qt应用程序将安装在Windows计算机上,但Qt未安装在该计算机上。我怎样才能解决这个问题?我必须构建一个巨大的静态exe吗?是否可以将QtDLL放在与我的应用程序相同的文件夹中并将其链接到它们?我在Qt网站上找到了这个解释“CreatingtheApplicationPackage”,但它是面向插件的。 最佳答案 您只需将DLL放在与您的可执行文件相同的目录中,并创建一个包含以下内容的qt.conf:[Paths]Prefix=.\Plugins=.\通过这种方式,您可以确保Qt系统将从正确的目录(例如SQL插件的sqldr
这是一个关于在Windows、C++中使用recvfrom()的非常基本的问题(希望如此)。我正在实现一个非常基本的UDP函数,该函数发送消息,然后接收字符消息作为返回。当我调用recvfrom()时,我得到了相应的消息,但该函数不返回接收到的字节(字符)数。相反,它返回0。片段:sendto(sock,"10000;1;Chris\0",14,0,(structsockaddrFAR*)&sin,sizeof(sin));if(nchars=recvfrom(sock,buf,LINELEN,0,NULL,NULL)我的返回消息需要附加一个空字符,但nchars一直返回0,这让这变得
我在c中使用GTK2.2。我可以从其中一个条目中获取文本并使用类型转换将其转换为整数,但它不适用于第二个条目。由于某种原因,我设置为从第二个条目获取文本的变量保持为0。这是我的代码。button2_clicked部分不工作,但问题也可能出在button2g_signal连接上。#include#includeintprod,prod_amt,amt,amt_holder,tot_amt;staticvoidbutton3_clicked(GtkWidget*widget,gpointerwindow){GtkWidget*dialog;dialog=gtk_message_dialog
我正在尝试从特定行(第1、7、13等-所需数据放在下一个第6行)中的文本文件中获取一些数据到目前为止我的代码是这样的:txtfile="titles.txt";ifstreamtxt(txtfile);constintbuffer_size=80;chartitle_buffer[buffer_size];constinttitleLineDiff=6;if(txt.is_open()){while(!txt.eof()){staticintcounter=1;txt.getline(title_buffer,buffer_size);cout现在,它可以很好地处理我创建的这个文件:t
我有一个Win32应用程序,它有一个对话框,只有当进程是一个重新启动的进程时,它才会执行某些操作。大纲如下:#defineCMDLINE_RESTART_PROCESS"--Restart"BOOLCheckForProcessRestart(){LPTSTRszCmdLine=::GetCommandLine()return::StrStr(szCmdLine,CMDLINE_RESTART_PROCESS)!=NULL;}BOOLCMyDialog::InitInstance(){if(CheckForProcessRestart()){//Dosomething(likeinit