小编llk*_*llk的帖子

用C++创建一个简单的配置文件和解析器

我正在尝试创建一个看起来像这样的简单配置文件

url = http://mysite.com
file = main.exe
true = 0
Run Code Online (Sandbox Code Playgroud)

程序运行时,我希望它将配置设置加载到下面列出的程序变量中.

string url, file;
bool true_false;
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,这个链接似乎有帮助(核子的帖子),但我似乎无法让它工作,而且我太难理解了.有一个简单的方法吗?我可以使用加载文件,ifstream但这是我自己可以得到的.谢谢!

c++ settings configuration parsing file

51
推荐指数
5
解决办法
13万
查看次数

如何在C#中将数据写入文本文件而不覆盖当前数据

问候,我似乎无法弄清楚如何在不覆盖文件的情况下将数据写入文件.我知道我可以使用File.appendtext但我不知道如何将其插入到我的语法中.这是我的代码:

TextWriter tsw = new StreamWriter(@"C:\Hello.txt");

//Writing text to the file.
tsw.WriteLine("Hello");

//Close the file.
tsw.Close();
Run Code Online (Sandbox Code Playgroud)

我希望每次运行程序时都写Hello,而不是覆盖以前的文本文件.感谢您阅读本文.

c# text overwrite

24
推荐指数
3
解决办法
10万
查看次数

如何在C++中模拟按键

我想知道如何在C++中模拟一个关键的抑郁症.如有代码,当我运行程序时,它按下字母"W"键.我不想在控制台窗口中显示它我只想在每次单击文本字段时显示"W"键.谢谢!

注意:我不是想制作垃圾邮件发送者.

c++ windows keyboard input

20
推荐指数
2
解决办法
6万
查看次数

访问直接内存地址并在C++中获取值

我想知道是否可以使用C/C++访问直接的内存块并获取值.例如:

int i = 15;
int *p = &i;
cout << &i;
Run Code Online (Sandbox Code Playgroud)

如果我在这里取印刷值,那将给我变量i的地址,其中包含值15.我只是说它为本例打印出0x0ff9c1.如果我有一个单独的程序声明一个像这样的指针...

int *p = 0x0ff9c1;
cout << *p;
Run Code Online (Sandbox Code Playgroud)

是否有可能打印出另一个应用程序放在内存块0x0ff9c1中的15?我知道我的指针声明与内存地址不正确,我不知道如何做到这一点.我尝试过使用memcopy但是我也无法使用它.我知道这是可能的,因为我有一个名为Cheat Engine的程序,它修改游戏内存地址值以获得不公平的优势.我已成功放置打印的内存位置并通过Cheat Engine获取值(15).我的目标是使用C++来做到这一点.如果这太混乱了,基本上我想访问另一个应用程序使用其内存地址存储的变量并打印出该值.如果重要的话,我正在使用Windows 7 x64和MinGW编译器.谢谢!

PS:我会张贴一张Cheat Engine的图片,以提供更好的主意. 在此输入图像描述

c++ memory pointers memory-address

16
推荐指数
2
解决办法
2万
查看次数

GDB如何在运行时评估C++表达式

在调试时,我最近注意到GDB能够在调试程序时评估"复杂"表达式,我想知道它是如何做到这一点的.例如,使用以下代码:

int main() {
    std::vector<int> v = {1, 2, 3};
    int k = 0;
    std::cin >> k;
    v.push_back(k);
    return v.at(0);
}
Run Code Online (Sandbox Code Playgroud)

我能够编译程序g++ -g myprogram.cpp并在GDB中调试它,这允许我输入类似的东西print v.at(4);(在k动态输入后打印正确的值)并且print v.at(2) == 3评估为true.

我想知道GDB是如何做到这一点的.这个SO问题暗示它是"在内存中编译"的东西,但没有进一步详细说明,所以我想知道它是否使用某种JIT来使这一切工作或其他什么?当我输入并运行它时,他们是否在内联编译代码?他们是否有一个框架来在调试环境中动态评估C++?本质上,我想在我正在编写的调试器中重现这一点来评估断点处的表达式,这就是为什么我很好奇GDB是如何做到的.

c++ gdb expression

9
推荐指数
2
解决办法
1232
查看次数

删除C#中文件以外的目录中的所有内容

我在删除除文件(index.dat)之外的目录中的所有内容时遇到问题我正在尝试清除cookies文件夹和文件的临时文件夹但是当我尝试删除index.dat时出现错误,因为它被另一个文件使用处理.有没有办法删除temp和cookies文件夹中 index.dat文件以外的所有内容?这是我的代码:

string userProfile = Environment.GetEnvironmentVariable("USERPROFILE");
string strDirLocalq = Path.Combine(userProfile, "AppData");
string strDirLocalw = Path.Combine(strDirLocalq, "Roaming");
string strDirLocale = Path.Combine(strDirLocalw, "Microsoft");
string strDirLocalr = Path.Combine(strDirLocale, "Windows");
string strDirLocalt = Path.Combine(strDirLocalr, "Cookies");

string[] filePaths = Directory.GetFiles(strDirLocalt);
foreach (string filePath in filePaths)
    File.Delete(filePath);
Run Code Online (Sandbox Code Playgroud)

c# file delete-file

6
推荐指数
1
解决办法
8562
查看次数

使用对话框窗口C++ Win32 API上的图标

我正在尝试创建一个顶部带有图标的对话框.

图标对话框

我正在使用资源文件来加载图标.

IDI_ICON1          ICON           ".\\usb.ico"
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码设置窗口图标.

SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)IDI_ICON1);
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)IDI_ICON1);
Run Code Online (Sandbox Code Playgroud)

hwnd是窗口.结果,我得到一个蓝色圆圈,看起来就像是Windows 7和Vista的加载图标.我几乎肯定正在正确加载图标,因为当我查看任务栏时,我的程序有代表我程序的图标.如果你需要我用于对话窗口的代码,请告诉我我会发布它.我在Windows 7上使用mingw32 C++编译器.谢谢!

c++ api winapi icons dialog

5
推荐指数
2
解决办法
7938
查看次数

如何在C#中创建和使用dll文件

我目前正在尝试学习如何在C#和C++中编写和使用Windows的.dll文件.我想,一旦我理解了其中一个语言,我就能很容易地找出另一个语言.我今天搜索了超过5个小时,但是找不到工作的.dll指南却没有运气.它们要么已经过时,要么拒绝使用我的编译器,或者只是彻头彻尾的垃圾.是否有人知道一个很好的指南,工作的?我正在使用Dev C++和VC++ 2010.感谢您的帮助!:)

c++ dll load dllimport

3
推荐指数
1
解决办法
5184
查看次数

在 C++ 中使用 libcurl 下载多个文件

我目前正在尝试为我的软件项目制作更新程序。我需要它能够下载多个文件,我不介意它们是同步下载还是一个接一个下载,无论哪个更容易(文件大小不是问题)。我遵循了 libcurl 网页和其他一些资源中的示例,并提出了这个:

#include <iostream>
#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
    size_t written;
    written = fwrite(ptr, size, nmemb, stream);
    return written;
}
int main(void){
    for (int i = 0; i < 2;){        //download 2 files (loop twice)
        CURL *curl;
        FILE *fp;
        CURLcode res;
        char *url = "http://sec7.org/1024kb.txt";  //first file URL
        char outfilename[FILENAME_MAX] = "C:\\users\\grant\\desktop\\1024kb.txt";
        curl = curl_easy_init();
        if (curl){
            fp = fopen(outfilename,"wb");
            curl_easy_setopt(curl, CURLOPT_URL, url);
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, …
Run Code Online (Sandbox Code Playgroud)

c++ file download libcurl

3
推荐指数
1
解决办法
6300
查看次数

从struct指针调用重载的operator函数

我在C++中有以下结构

struct Jam
{
    void operator()()
    {
        cout << "Test";
    }
};
Run Code Online (Sandbox Code Playgroud)

我可以像这样调用重载函数:

Jam j;
j();
Run Code Online (Sandbox Code Playgroud)

但我想知道从指向同一结构的指针调用函数的正确方法是什么.例如,如果我有:

Jam *j = new Jam;
j->();
Run Code Online (Sandbox Code Playgroud)

我收到错误告诉我它需要一个函数名称.这可能吗?谢谢!

c++ class operator-overloading

3
推荐指数
1
解决办法
1257
查看次数