小编Stu*_*ntX的帖子

如何知道一个进程是否在Windows中用C++,WinAPI运行?

如果我只知道exe文件名,如何在Windows程序中知道进程是否正在运行?有问题的过程是64位的TeamSpeak3 ts3client_win64.exe和32位的ts3client_win32.exe.

我正在使用C++

winapi

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

BM_GETCHECK无法正常工作

我有这样的代码:

In WM_CREATE

    hCheckBox = CreateWindowEx(0,"Button","Random text", WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS| BS_AUTOCHECKBOX | BS_TEXT | WS_GROUP | WS_TABSTOP,150,323,300,20,hwnd,0,hInstance,0) ;


In WM_COMMAND

    if ( SendMessage( hCheckBox , BM_GETCHECK, (WPARAM) NULL, (LPARAM) NULL ) == BST_CHECKED )
        MessageBox( 0, "Working", "Msg", 0 );
Run Code Online (Sandbox Code Playgroud)

如果选中复选框并不重要,它永远不会返回BST_CHECKED.试着让它在最后2小时工作:(

c++ winapi

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

如果我们只知道IP,如何知道服务器是否在线?

怎么办,服务器不是HTTP服务器,它是ArmA游戏服务器.我试图在下面的代码中使用CURL实现它,但它不起作用,它总是显示脱机.

IsOnline( "xx.xxx.xx.xxx" );

    bool IsOnline( string url )
    {

        CURL *curl;

        curl = curl_easy_init();

        if(curl) 
        {
            curl_easy_setopt(curl, CURLOPT_URL, url.c_str() );


            CURLcode result = curl_easy_perform(curl);
            if ( result != CURLE_OK )
            {
               error_string = curl_easy_strerror( result );
               return false;
            }

            curl_easy_cleanup(curl);
            curl_global_cleanup();
            return true;
        }

        curl_easy_cleanup(curl);
        curl_global_cleanup();
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

c++ winapi curl network-programming

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

C++指针,如何?

我需要一个指针传递给std::string作为LPARAM一个的WM_USER消息,并得到字符串或char*WM_USER主窗口的消息处理程序.

我怎么做 ?

我现在正在做什么(这是不正确的,因为它不会产生应该的结果):

PostMessage(hwnd, LP_DOWNLOADUPDATE, (WPARAM)hHandleToWindow, (LPARAM)&remSize);
Run Code Online (Sandbox Code Playgroud)

哪里remSizesdt::string remSize;一个全局变量.

在我正在做的消息处理程序中:

SetWindowText( (HWND)wParam, (char*)lParam );
Run Code Online (Sandbox Code Playgroud)

c++ winapi

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

如何更改禁用按钮的外观和编辑控件?

已启用
已启用

残障人士
残障人士

当我禁用按钮(使用BS_BITMAP样式标志创建)时,它会改变外观(请参见上图),编辑控件也会发生同样的情况。

禁用后如何使控件不变?
我可以通过对控件进行子类化来实现,但是有没有更简单的方法?
如果可能的话,我不想仅仅为此子类化控件。

c++ winapi

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

GetCurrentDirectory()打破了C++中的代码

在下面的代码中,如果我注释掉对"GetCurrentDirectory"的调用,一切正常,但是如果我没有那么代码在它之后中断,没有子窗口出现,但程序不会崩溃.编译器不会给出任何错误.

 char *iniFilePath;
 int lenWritten = GetCurrentDirectory( MAX_PATH, iniFilePath );
 if( lenWritten )
 {
     lstrcat( iniFilePath, iniFileName.c_str() );
     char *buffer;
     GetPrivateProfileString( iniServerSectionName.c_str(), serverIp.c_str(), "", buffer, MAX_PATH, iniFilePath );// server ip
     MessageBox( 0, buffer, 0, 0 );
 }
 else
 {
     MessageBox( 0,0,0,0 );
 }
Run Code Online (Sandbox Code Playgroud)

c++ winapi

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

如何将char转换为c ++中的位数组?

我需要将一个字符串的每个字符作为一个位序列在一个数组中,或者只是循环遍历它,无论哪种方式都有效.这是我过去常常以ASM的方式做的事情,我不确定如何在c ++中完成.

编辑:我试图复制我用asm回来做的事情,在内存中读取文件并逐位遍历它,操纵每个位,做一些更多的加密并保存回来.

基本上是一个简单的加密.它不是一个家庭作业,也不是一个项目.

c++

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

:: TransparentBlt无法正常工作

我使用:: TransparentBlt绘制一个bmp,其透明像素由Magenta RGB(255,0,255)标记,但是:: TransparentBlt表现不正常,一些不应该透明的像素在结果中是透明的.

我究竟做错了什么 ?

原始图片:

在此输入图像描述

来自:: TransparentBlt的结果

在此输入图像描述

结果图像中的灰色区域是背景图像,其上原始bmp是:: TransparentBlt-ed

码:

LRESULT jItems::paint (  )
{
    HDC hdc ;
    PAINTSTRUCT ps ;
    RECT rect ; 
    ::GetClientRect ( hwnd , &rect ) ; 
    hdc = ::BeginPaint ( hwnd , &ps ) ;
    HDC dcSkin = ::CreateCompatibleDC ( hdc ); // memory dc for skin
    HDC hMemDc = ::CreateCompatibleDC ( hdc ); // memory dc for painting
    HBITMAP hmemBmp = ::CreateCompatibleBitmap ( hdc, rect.right - rect.left, rect.bottom - rect.top  ); // …
Run Code Online (Sandbox Code Playgroud)

c++ winapi

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

标签 统计

c++ ×7

winapi ×7

curl ×1

network-programming ×1