Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при компиляции проекта WFP 
:(
    Опции темы
F1scher
Дата 31.3.2012, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



Здравствуйте, пишу проект под использование Windows Filtering Platform, при создании сессии вылетает ошибка, не понимаю как с ней бороться.
Менял флаги, но все равно не работает.

Сам код:
Код

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <Fwpmu.h>

//Глобальные переменные
//Возвращаемый результат работы функций
DWORD RetResult;


// Первый этап: открытие сеанса функцией FwpmEngineOpen0
//DWORD WINAPI FwpmEngineOpen0(
//  __in_opt  const wchar_t *serverName,
//  __in      UINT32 authnService,
//  __in_opt  SEC_WINNT_AUTH_IDENTITY_W *authIdentity,
//  __in_opt  const FWPM_SESSION0 *session,
//  __out     HANDLE *engineHandle
//);
//Вызов данной функции осуществляется из мейна

int _tmain(int argc, _TCHAR* argv[])
{
    //Первый этап открытие сеанса функцией FwpmEngineOpen0
    //Для этого нам нужно создать (объявить) объект типа HANDLE,
    //открываемый сыссией работы Windows Filtering Platform
    HANDLE gEngineHandle = NULL;
    RetResult = FwpmEngineOpen0(NULL,  RPC_C_AUTHN_WINNT, NULL, NULL, &gEngineHandle);
    //Проверяем создан ли хендл, открылась ли сессия.
    if (RetResult != ERROR_SUCCESS)
        printf("FwpmEngineOpen0 failed. Return value: %d.\n", RetResult); 
    else
        printf("Filter engine opened successfully.\n");
    getchar();
return;
}


Ошибка:
Код

1>------ Построение начато: проект: WFP 4, Конфигурация: Debug Win32 ------
1>Построение начато 31.03.2012 15:18:56.
1>InitializeBuildStatus:
1>  Обращение к "Debug\WFP 4.unsuccessfulbuild".
1>ClCompile:
1>  Для всех выходных данных обновления не требуется.
1>  stdafx.cpp
1>  WFP 4.cpp
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwptypes.h(275): error C2059: синтаксическая ошибка: константа
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwptypes.h(333): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwptypes.h(333): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwptypes.h(336): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwptypes.h(345): error C2059: синтаксическая ошибка: константа
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(369): error C2059: синтаксическая ошибка: константа
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(371): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(371): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(390): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(418): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "v4Statistics"
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(418): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(418): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(419): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "v6Statistics"
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(419): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\iketypes.h(419): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwpmtypes.h(413): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "enumType"
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwpmtypes.h(413): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\fwpmtypes.h(413): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.68
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


первая ошибка:
Код

#define FWP_ACTION_BLOCK \

   (0x00000001 | FWP_ACTION_FLAG_TERMINATING)


Это сообщение отредактировал(а) F1scher - 31.3.2012, 14:57
PM MAIL   Вверх
feodorv
Дата 31.3.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 9
Всего: 45



Код

#define FWP_ACTION_BLOCK \

   (0x00000001 | FWP_ACTION_FLAG_TERMINATING)


В оригинале точно присутствует пробельная строка между 
Код
#define FWP_ACTION_BLOCK \
 и 
Код
   (0x00000001 | FWP_ACTION_FLAG_TERMINATING)
? Если так, то её надо убрать:
Код

#define FWP_ACTION_BLOCK \
   (0x00000001 | FWP_ACTION_FLAG_TERMINATING)



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
F1scher
Дата 31.3.2012, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



да, в оригинале строка присутствует, но это библиотека fwptypes.h, при убирании строки, подчеркивание ошибки исчезает, но сохранить изменения не позволяется, и все ошибки связаны с этой библиотекой. Как можно использовать отредактированный вариант этой библиотеки без ошибок. 

и ещё сейчас выдается ошибка с  #include <Fwpsk.h>, говорит что не удается открыть источник файл Fwpsk.h 

PM MAIL   Вверх
xvr
Дата 1.4.2012, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(F1scher @  31.3.2012,  21:27 Найти цитируемый пост)
да, в оригинале строка присутствует, но это библиотека fwptypes.h

Похоже на криво установленный SDK

PM MAIL   Вверх
GremlinProg
Дата 2.4.2012, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(F1scher @  31.3.2012,  23:27 Найти цитируемый пост)
в оригинале строка присутствует, но это библиотека fwptypes.h

если там таких строк много, то возможно проблема в формате файла,
конкретно - в соглашении о переводах строк, т.е. вместо \r\n используется \r\r\n, например или еще что-то такое,

хотя, по поводу ошибки есть googlink: http://connect.microsoft.com/VisualStudio/...ompiles-to-fail


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
F1scher
Дата 2.4.2012, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



еще ни как не удается найти библиотеку Fwpsk.h,  говорит не удаётся открыть источник файла, в чем тут может быть дело?
PM MAIL   Вверх
F1scher
Дата 3.4.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



при компиляции, теперь выдается только одна ошибка:

c:\users\f1-scher\documents\visual studio 2010\projects\wfp 4\wfp 4\wfp 4.cpp(8): fatal error C1083: Не удается открыть файл включение: Fwpsk.h: No such file or directory

можно ли где-нибудь скачать библиотеку Fwpsk.h? или есть какой то другой способ?

/////////////////////////////////////

если пытаюсь компилировать без нее, выдает такую ошибку:

c:\program files (x86)\microsoft sdks\windows\v7.0a\include\ws2def.h(38): fatal error C1189: #error :  Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.

пареход по ошибке в файл ws2def.h, в котором подчеркнуто как ошибка  слово error во второй строчке этого фрагмента:

Код

#if !defined(_WINSOCK2API_) && defined(_WINSOCKAPI_)    
#error Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.
#endif


при наведении курсора на ошибку говорит: директива #error: Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.

не понимаю в чет тут дело?
PM MAIL   Вверх
GremlinProg
Дата 3.4.2012, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(F1scher @ 3.4.2012,  12:27)
при компиляции, теперь выдается только одна ошибка:

c:\users\f1-scher\documents\visual studio 2010\projects\wfp 4\wfp 4\wfp 4.cpp(8): fatal error C1083: Не удается открыть файл включение: Fwpsk.h: No such file or directory

можно ли где-нибудь скачать библиотеку Fwpsk.h? или есть какой то другой способ?

/////////////////////////////////////

если пытаюсь компилировать без нее, выдает такую ошибку:

c:\program files (x86)\microsoft sdks\windows\v7.0a\include\ws2def.h(38): fatal error C1189: #error :  Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.

пареход по ошибке в файл ws2def.h, в котором подчеркнуто как ошибка  слово error во второй строчке этого фрагмента:

Код

#if !defined(_WINSOCK2API_) && defined(_WINSOCKAPI_)    
#error Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.
#endif


при наведении курсора на ошибку говорит: директива #error: Do not include winsock.h and ws2def.h in the same module. Instead include only winsock2.h.

не понимаю в чет тут дело?

это означает, что winsock.h уже подключает windows.h,
повторно это делать не нужно,
поэтому убирай
Код

#include <windows.h>


Добавлено через 1 минуту и 26 секунд
Цитата(GremlinProg @  3.4.2012,  15:12 Найти цитируемый пост)
winsock.h уже подключает windows.h

вернее, winsock2.h


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
F1scher
Дата 3.4.2012, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



спасибо, да действительно в этом было дело

PM MAIL   Вверх
F1scher
Дата 3.4.2012, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



по-прежнему есть проблема с #include <Fwpsk.h>, подскажите где можно скачать эту библиотеку или как-то подключить, библиотека нужна для функции FwpsCalloutRegister0, может есть какая-то альтернатива?
PM MAIL   Вверх
xvr
Дата 3.4.2012, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(F1scher @ 3.4.2012,  16:22)
по-прежнему есть проблема с #include <Fwpsk.h>, подскажите где можно скачать эту библиотеку или как-то подключить, библиотека нужна для функции FwpsCalloutRegister0, может есть какая-то альтернатива?

В первоисточнике (MSDN) смотреть не пробовали?
Цитата

fwpsk.h  Kernel-mode function prototypes and enumerated types for FWPS component. Available in the DDK only.
Вы уверены, что она вам нужна?

PM MAIL   Вверх
F1scher
Дата 3.4.2012, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



В MSDN решения я не нашел, вообще я пишу проект с использованием Windows Filtering Platform, и для работы с этим, мне требуется функция FwpsCalloutRegister0, ну и соответственно в MSDN сказано что для данной функции требуется библиотека Fwpsk.h, как обойти это я не знаю.

PM MAIL   Вверх
xvr
Дата 3.4.2012, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(F1scher @  3.4.2012,  19:53 Найти цитируемый пост)
в MSDN сказано что для данной функции требуется библиотека Fwpsk.h,

Я же вам привел выдержку оттуда. Весь этот хидер относится к DDK, т.е. вся функциональность оттуда доступна только в device driver'ах. Если вам действительно нужна именно эта функция, вам надо скачивать с MS WDK (или DDK) и писать драйвер.

PM MAIL   Вверх
F1scher
Дата 3.4.2012, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



хм, спасибо, может быть мне надо как то иначе решить мою задачу, драйвер мне писать не нужно, вообще мне нужно написать программу подсчета сетевого трафика с использованием Windows Filtering Platform, наверное я пошел не по тому пути решения, может быть вы сможете мне посоветовать, каким путем решить мою задачу?)
PM MAIL   Вверх
xvr
Дата 3.4.2012, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



WFP вам похоже не поможет. Из User Mode он умеет только управлять уже существующими фильтрами. Вам скорее надо смотреть куда то в сторону WMI или исследовать чем пользуется netmon.exe

PM MAIL   Вверх
F1scher
Дата 4.4.2012, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2012

Репутация: нет
Всего: нет



использование WFP, это принципиальное условие, в этом и состоит задача, просто я не совсем понимаю путь решения, так как мне было сказано, что это не должен быть драйвер и использование WDK не должно потребоваться,есть ли варианты написания программы считающей трафик, но при этом не используя вышеупомянутые условия? просто решения над которым начал работать я, приводим меня все таки к драйверу, но это явно не то.
PM MAIL   Вверх
xvr
Дата 4.4.2012, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(F1scher @  4.4.2012,  09:17 Найти цитируемый пост)
есть ли варианты написания программы считающей трафик, но при этом не используя вышеупомянутые условия?

Изучите фильры, которые уже есть в WFP. Возможно вам что то из них подойдет. Если таких фильтров нет, то увы - WFP (без драйвера) вам не поможет. (Хотя я не спец по WFP, возможно что то и пропустил)


PM MAIL   Вверх
Miyka
Дата 10.4.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.3.2008
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Цитата

Изучите фильры, которые уже есть в WFP. Возможно вам что то из них подойдет. Если таких фильтров нет, то увы - WFP (без драйвера) вам не поможет. (Хотя я не спец по WFP, возможно что то и пропустил)


Подскажите пожалуйста какие фильтры вы имеете в виду? Спасибо.
PM MAIL ICQ   Вверх
xvr
Дата 10.4.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(Miyka @  10.4.2012,  17:04 Найти цитируемый пост)
Подскажите пожалуйста какие фильтры вы имеете в виду?

Фреймворк WFP из User Space управляет фильтрами, реализованными в kernel Space в виде драйверов (или частей самого Kernel'а). Очевидно, что какие то фильтры уже должны там быть (от рождения). Какие именно я не знаю, т.к. с WFP не работал. Тут посмотрите, там названа пара фильтров  smile Хотя там и явные задачи фильтрации отписаны в User Space, возможно вам повезет и это все же можно сделать  smile http://msdn.microsoft.com/en-us/library/aa366504.aspx


PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1559 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.