小编use*_*117的帖子

非法调用非静态成员函数

我在下面的这个功能有问题:

char* GetPlayerNameEx(int playerid)
{

    char Name[MAX_PLAYER_NAME], i = 0;

    GetPlayerName(playerid, Name, sizeof(Name));

    std::string pName (Name);

    while(i == 0 || i != pName.npos)
    {
        if(i != 0) i++;
        int Underscore = pName.find("_", i);
        Name[Underscore] = ' ';
    }
    return Name;
}
Run Code Online (Sandbox Code Playgroud)

宣言:

char* GetPlayerNameEx(int playerid);
Run Code Online (Sandbox Code Playgroud)

用法:

sprintf(string, "%s", CPlayer::GetPlayerNameEx(playerid));
Run Code Online (Sandbox Code Playgroud)

现在我的问题是

删除了个人信息.

如果这与我怀疑它有什么关系,那么这个函数包含在"Class"头(Declartion)中.

此外,我不知道为什么,但我不能让"代码"框正确适合.

c++ visual-c++

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

如何使用 boost 程序选项配置文件中的部分

这显然是一个相当简单的问题,因为没有其他人在图书馆遇到过这样的问题。

但是,当我运行我的程序时,boost 返回错误“无法识别的选项 Settings.Directoy”但是我已经在我的代码和我要求它读取的文件中定义了它。首先这是我的代码,很短,因为我是作为测试来做的。

std::string Directory;

try {
    ifstream Config_File("Config.ini");
    options_description Game("Settings");
    Game.add_options()
        ("Directory", value<std::string>(&Directory)->default_value("Example.exe"));

    variables_map vm;
    store(parse_config_file(Config_File, Game), vm);
    notify(vm);

    if (vm.count("Directory"))
    {
        cout << Directory;
    }
}
catch(std::exception& E)
{
    std::cout << E.what() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

这是它从“Config.ini”中读取的文件

[Settings]
Directory = "Example.exe"
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过更改文件类型、名称...删除空格来调试它?

为目录中的条目添加和删除引号?很多事情,这给了我没有解决方案。

c++ boost file boost-program-options

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

GetModuleHandle(),用于另一个进程中的 DLL

标题真的解释了这一切,我有一个进程进入另一个进程。我需要能够在此程序上为某个非 Windows 标准的 DLL 调用 GetModuleHandle,而且我没有主程序的源代码。

我需要使用它来调用带有 GetProcAddress 的导出函数,最后在 CreateRemoteThread 中使用它来远程启动该程序上的任务。

无论如何我可以从另一个程序而不是它正在创建远程线程的本地程序中获取 ModuleHandle 吗?

谢谢。

c++ module getprocaddress createremotethread

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

在其命名空间中导出函数?

我很确定这不可能从我读过的内容中尝试过.虽然为了方便代码的连续性,我想在这里问一下.

是否可以将函数与其命名空间容器一起导出?

例如:

namespace Continuity
{
    int Foo(void);
}
Run Code Online (Sandbox Code Playgroud)

标准用法是: Continuity::Foo();

我希望能够导出此函数以在DLL中使用,但是我想将其保留在命名空间结构中,以便我可以在DLL中使用相同的用法.

c++ dll namespaces export function

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

从向量和unordered_sets中检索数据

我已经开始将数据放入vectors和unordered_sets.我已经很容易地解决了如何将数据放入其中的问题,并且我知道如果需要卸载所有数据,如何获取数据,例如:

for (auto i : vehicles)
    MakeSpawnInfoVehicle(i.AddedInformation);
Run Code Online (Sandbox Code Playgroud)

不过,我已经到了一个地步,我想从任一信息只有一个元素unordered_setS或vectorS,从而为有史以来第10项是在什么vectorunordered_set.

如果有人可以提供两者的基本例子,我相信我会理解它.

c++ vector unordered-set

2
推荐指数
1
解决办法
71
查看次数