Articles of c + +

注册为超越应用程序级别的allowDefinition ='MachineToApplication'部分

当我创build一个新文件夹时,出现此错误,并将file upload到该文件夹​​。 我有一个已经build好的现有网站,但是我不想把它添加到网站上,而是让它成为一个独立的应用程序。 有任何想法吗?

在.NET中获取目录数据的最快方法

我正在使用文件同步服务来同步不同机器上的两个文件夹之间的文件。 我需要find一个非常快速的方式来枚举一个目录,并从中获取以下信息: 该目录中所有文件path和子目录path的数据结构或结构,包括每个文件或子目录的最后写入时间。 对于当前目录下任何级别的每个子目录,与上述相同。 到目前为止,我已经想出了这个: static void Main(string[] args) { List<Tuple<string, DateTime>> files = new List<Tuple<string, DateTime>>(); List<Tuple<string, DateTime>> directories = new List<Tuple<string, DateTime>>(); Stopwatch watch = new Stopwatch(); while (true) { watch.Start(); while (!CheckFolderRecursiveSingleThreaded("C:\\", out files, out directories)) { // You can assume for all intents and purposes that drive C does exist and […]

无法运行在Windows XP中由VS2013创build的安装程序文件

在VS-2013,Dotnet4框架和32位体系结构中创build了一个用c#开发的安装文件。 它正在安装在Windows 7和Windows 8,但不是在Windows XP(SP3)与pipe理员previllege。 错误:“在安装应用程序之前安装程序中断,您需要重新启动安装程序才能再次尝试。 帮助需要在这方面。 Output of msiexec /i Setup.msi /l*v MyLogFile.txt === Verbose logging started: 2/12/2015 20:19:11 Build type: SHIP UNICODE 3.01.4001.5512 Calling process: C:\WINDOWS\system32\msiexec.exe === MSI (c) (D4:B4) [20:19:11:125]: Resetting cached policy values MSI (c) (D4:B4) [20:19:11:125]: Machine policy value 'Debug' is 0 MSI (c) (D4:B4) [20:19:11:125]: ******* RunEngine: ******* Product: […]

问题与杀死Windows资源pipe理器?

我需要杀死Windows资源pipe理器的进程(explorer.exe),为此 可以说我使用本地NT方法TerminateProcess 它的工作,但问题是,资源pipe理器重新启动,可能是Windows正在做那个,反正。 当我杀死explorer.exe与Windows任务pipe理器,它不会回来,其停留死亡。 我想通过我的应用程序做任何事情pipe理者。 编辑: 感谢@sblom我解决了它,在registry中快速调整了伎俩。 虽然这是一个聪明的黑客攻击,显然,任务pipe理员有一个更干净的方式,那就是说,我决定现在就用@ sblom的方式。

如何避免与Windows头文件中定义的macros名称冲突?

我有一些C ++代码,包括一个名为CreateDirectory().的方法CreateDirectory(). 以前的代码只使用STL和Boost,但是我最近不得不包含<windows.h>所以我可以查找CSIDL_LOCAL_APPDATA 。 现在,这个代码: filesystem.CreateDirectory(p->Pathname()); // Actually create it… 不再编译: error C2039: 'CreateDirectoryA' : is not a member of … 在winbase.h对应这个macros: #ifdef UNICODE #define CreateDirectory CreateDirectoryW #else #define CreateDirectory CreateDirectoryA #endif // !UNICODE 预处理器正在重新定义我的方法调用。 有没有可能的方法来避免这种命名冲突? 或者我必须重命名我的CreateDirectory()方法?

获取进程的基地址

我想访问一个进程的某个地址。 但为此,我需要首先获取进程的基地址。 我正在使用一个工具,看看我是否真的做对了。 该工具显示我需要以下内容: "app.exe"+0x011F9B08 = 0x119F8300 我以为我可以通过OpenProcess()获得进程的基地址,但是这给了我: 0x0000005c作为结果。 我不认为这是对的? 至less,不是我所需要的。 我认为我需要的基地址是: 0x119F8300 – 0x011F9B08 = 0x107FE7F8 <– base? 这是我的代码: hWindow = FindWindow(NULL, lpWindowName); if(hWindow) { GetWindowThreadProcessId(hWindow, &dwProcId); if(dwProcId != 0) { // hProcHandle -> 0x0000005c hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId); } else { return 0; } } 我怎样才能得到我打开过程的基地址?

StreamWriter用新文本replace行

是否有可能用一个新的文本replace文本文本,而不擦除其他数据,这是我的示例代码,但它不工作,我知道有一个问题,但我不明白,谢谢, private void button1_Click_1(object sender, EventArgs e) { StreamReader sr = new StreamReader("test10101.txt"); List<string> lines = new List<string>(); while (!sr.EndOfStream) lines.Add(sr.ReadLine()); output = Convert.ToInt32(textBox1.Text); newbal = Convert.ToInt32(lines[0]) – output; MessageBox.Show("Please get your cash….\n\nYour new balance is: $" + newbal); sr.Close(); { string linetoreplace = lines[0]; int newlinevalue = newbal; string contents = sr.ReadToEnd(); StreamWriter sw […]

可靠地检测到我的另一个应用程序正在运行

我有两个应用程序,一个WinForms应用程序和一个Windows服务,将在同一台机器上运行。 我希望WinForms应用程序能够可靠地检测服务何时运行。 我完全控制这两个应用程序的devise和实现。 我的第一个想法是使用一个互斥体 ,由服务实例化和WinForms应用程序可检测。 有更好的devise吗?

相当于“SIGINT”(posix)信号,用于捕获Windows / MinGW下的“CTRL + C”

我正在windows下移植一个Linux / gcc程序,并为这两个程序实现了通用的exception处理。 我想知道MinGW / gcc的SIGINT信号相当于什么。 下面是我在Linux下如何处理它: static void handler(int sig) { // Catch exceptions switch(sig) { case SIGABRT: fputs("Caught SIGABRT: usually caused by an abort() or assert()\n", stderr); break; case SIGFPE: fputs("Caught SIGFPE: arithmetic exception, such as divide by zero\n", stderr); break; case SIGILL: fputs("Caught SIGILL: illegal instruction\n", stderr); break; case SIGINT: fputs("Caught SIGINT: […]

在C ++中查看system()调用的输出

我如何查看系统命令的输出。 例如: int _tmain(int argc, _TCHAR* argv[]) { system("set PATH=%PATH%;C:/Program Files (x86)/myFolder/bin"); system("cd C:/thisfolder/"); std::cin.get(); return 0; } 当我在Visual Studio中运行该程序时,会给我一个黑屏,我看不到正在运行的命令。 我需要它,所以我可以查看它是否有效。 谢谢!