小编set*_*eth的帖子

IP属于CIDR范围

我有这样的IP:12.12.12.12
我循环遍历不同的IP范围(12.12.12.0/24(示例))格式,并试图查看IP是否在范围内.
我尝试了各种方法,如inet_addr和比较,但我似乎无法得到它.
是否有捷径可寻?我正在使用Windows.

c c++ ip

5
推荐指数
1
解决办法
3583
查看次数

等待线程

我正在为我的4个线程使用CreateThread().
我想同时运行我的所有线程,但在继续主线程之前等待所有4个线程完成.

我使用了一个int并在线程的开头增加了它,然后在结束时减少了它,然后在我的主线程中我使用了while循环来保持数字超过某个值...但是这似乎没有工作正常.

这可能吗?

c c++ winapi multithreading

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

非常奇怪的GetOpenFileName问题

我似乎对GetOpenFileName有一个非常奇怪的问题.

它没有明显原因的错误,但是,如果我CommDlgExtendedError()在错误检查中调用,错误永远不会发生在第一位.

这是我的代码:

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    OPENFILENAME fm;
    char flnm[MAX_PATH];
    ZeroMemory(&fm, sizeof(fm));

    fm.lStructSize = sizeof(OPENFILENAME);
    fm.hwndOwner = NULL;
    fm.lpstrFilter = "Text Files (*.txt)\0*.txt\0";
    fm.lpstrFile = flnm;
    fm.nMaxFile = MAX_PATH;
    fm.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    fm.lpstrDefExt = "";

    if(!GetOpenFileNameA(&fm))
    {
        MessageBoxA(NULL, "failed! :(", NULL, NULL);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有什么表现?"失败!:("

如果我删除此检查,我会看到一个文件对话框.但是,它不起作用,并且文件名框预先填充了随机垃圾.

如果我改为:

if(!GetOpenFileNameA(&fm))
{
    DWORD dwErr = CommDlgExtendedError();
    MessageBoxA(NULL, "failed! :(", NULL, NULL);
}
Run Code Online (Sandbox Code Playgroud)

"失败!:("未显示.文件对话框显示并执行没有问题.

到底是怎么回事!?!?

c c++ winapi

0
推荐指数
1
解决办法
3945
查看次数

标签 统计

c ×3

c++ ×3

winapi ×2

ip ×1

multithreading ×1