Как распечатать на консоль в .dll файле - PullRequest
0 голосов
/ 18 октября 2019

Я использую некоторый C-код в R, и когда в R вызывается немного C-кода, я хотел бы, чтобы он вызвал консоль и распечатал на ней информацию. У меня есть .dll с кучей операторов функций, которые используются в R. Поэтому, когда R использует одну из этих функций C, я бы хотел, чтобы консоль появлялась. После некоторого поиска в Google я нашел следующий код:

void displayToConsole(const char *string)
{
    AllocConsole();
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);

    if (h == INVALID_HANDLE_VALUE)
    {
        MessageBox(NULL, "stdoutnot available", "Error", MB_OK);
    }

    if (WriteConsole(h, string, strlen(string), NULL, NULL) == FALSE)
    {
        if (AllocConsole() == TRUE)
        {
            WriteConsole(h, string, strlen(string), NULL, NULL);
            getch();
            FreeConsole();
        }
    }
    else
        getch();

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdline, int nCmdShow)
{
    displayToConsole("Test");

    return 0;
}
};

Итак, я добавил функцию displayToConsole() в одну из функций C, используемых R, но я не вижу никакого содержимого, выводимого на консоль. Примером этого может быть функция R, которая создает графический интерфейс. После инициализации графического интерфейса я хотел бы, чтобы консоль появилась и распечатала информацию. Возможно, я сильно неправильно понимаю, что я должен здесь делать, поскольку у меня нет никакого опыта в этих темах. Как я могу актуализировать консоль при вызове функций C из .dll?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...