Можно ли асинхронно вызывать IcmpSendEcho2? [Дубликат]

Что может работать, если вы делаете что-то вроде:

int main()
{
    const char* text = "
#include "file.txt"
";
    printf("%s", text);
    return 0;
}

Конечно, вам нужно быть осторожным с тем, что на самом деле находится в файле, убедившись, что нет двойных кавычек, что все соответствующие символы экранированы и т. д.

Поэтому было бы проще, если бы вы просто загрузили текст из файла во время выполнения или встроили текст непосредственно в код.

Если вы все еще хотел текст в другом файле, который мог бы быть там, но он должен быть представлен там как строка. Вы использовали бы код, как указано выше, но без двойных кавычек. Например:

"Something evil\n"\
"this way comes!"

int main()
{
    const char* text =
#include "file.txt"
;
    printf("%s", text);
    return 0;
}
0
задан Rui 30 May 2012 в 20:15
поделиться

1 ответ

Во-первых, не используют функции обратного вызова . Когда-либо

Во-вторых, PIO_APC_ROUTINE объявляется как:

typedef
VOID
(NTAPI *PIO_APC_ROUTINE) (
    IN PVOID ApcContext,
    IN PIO_STATUS_BLOCK IoStatusBlock,
    IN ULONG Reserved
    );

Таким образом, ваша функция GotIt должна быть:

VOID NTAPI GotIt(
    IN PVOID ApcContext,
    IN PIO_STATUS_BLOCK IoStatusBlock,
    IN ULONG Reserved
);

NTAPI __stdcall, а не по умолчанию __cdecl, о чем вам сообщает сообщение об ошибке.

Что вы сделали с этим:

PIO_APC_ROUTINE GotIt(PVOID param, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved);

... объявляет функцию, которая возвращает указатель на функцию. Это не то, что вы хотели.

2
ответ дан Roger Lipscombe 17 August 2018 в 16:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: