Ответы пользователя по тегу C++
  • Как отправить почту через MS Exchange в программе на C++?

    @1q2w1q2w Автор вопроса
    sudo make install
    да, но как это сделать? Просто указать в качестве smtp-сервера сервер exchange? Я пробовал задавать такой сервер, однако письма не отправляются, request timeout.
    Ответ написан
  • WinAPI DeviceIOControl QueryDosDevice почему не компилируется?

    @1q2w1q2w Автор вопроса
    sudo make install
    Всем большое спасибо! Выручили)
    Вот рабочий код, пробовал и на студии и на Qt Creator:
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    VOID LogicalToPhysical(TCHAR *szDrive)
    {
            LPCTSTR szPhysical; // was CString
    
            HANDLE h = CreateFile(szDrive, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
            if (INVALID_HANDLE_VALUE != h)
            {
                    STORAGE_DEVICE_NUMBER sd = { 0 };
                    DWORD dwRet;
                    if (DeviceIoControl(h, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sd, sizeof(STORAGE_DEVICE_NUMBER), &dwRet, NULL))
                    {
                            cout << "Physical disk: " << sd.DeviceNumber;
                    }
                    else {
                            cout << GetLastError();
                    }
                    CloseHandle(h);
            }
            else {
                    cout << "Invalid handle value\n";
            }
    }
    
    int main(int argc, char *argv[])
    {
        LogicalToPhysical(TEXT("\\\\.\\\\E:"));
        return 0;
    }

    Как раз то, что нужно ... номер физического диска на букву логического.
    зы: для студии сыпалась куча ошибок из-за того, что я не поменял в настройках проекта используемую кодировку с Unicode на WideChar )
    еще раз всем СПАСИБО!)
    Ответ написан
    Комментировать
  • C++ сеть. Как работать с сетью в C++?

    @1q2w1q2w
    sudo make install
    1. *WinInet
    2. •WinHttp
    3. •Casablanca
    4. •Qt
    5. •POCO
    6. •wxWidgets
    7. •Boost.Asio
    8. •libcurl
    9. •neon
    10. •.NET (С++/CLI)
    11. •IXMLHTTPRequest
    12. •HappyHttp
    13. •cpp-netlib


    Чтобы далеко не ходить: Статья на хабре
    Наиболее часто используются, насколько я знаю Boost и Qt. POCO и libcurl позволяют сделать проще реализацию, но не такие гибкие..
    А если без библиотек - тогда чисто через сокеты (если не ошибаюсь, библиотеки просто упрощают работу с ними, по крайней мере Boost).
    От себя рекомендую Qt ... но только если вам нужен GUI и что то кроме сетевых классов (тяжелый он, но красивый))
    А к стандарту ближе всего Boost (из него даже некоторые части были включены в стандарт), так что выбирайте)
    Кстати, к вопросу о выборе, для интереса пробил количество вакансия по boost и qt: 77/72 в Москве, так что почти паритет.
    Ответ написан
    Комментировать