У меня проблемы с компиляцией / компоновкой NetmonAPI в VS 2013. API поставляется с установкой MS Networkmonitor. Networkmonitor даже имеет объяснение в справке, как вы можете заставить его работать в VS. Я следовал инструкциям, как его настроить, попробовал пример из справки и потерпел неудачу. Я всегда получаю «LNK2019» Ошибка для семи символов.
Пример кода, который я использую:
#include "Stdafx.h"#include "windows.h"#include "stdio.h"#include "stdlib.h"#include "objbase.h"#include "ntddndis.h"#include "NMApi.h"
void __stdcall
MyFrameIndication(HANDLE hCapEng, ULONG ulAdaptIdx, PVOID pContext, HANDLE hRawFrame)
{
HANDLE capFile = (HANDLE)pContext;
NmAddFrame(capFile, hRawFrame);
}
int __cdecl wmain(int argc, WCHAR* argv[])
{
ULONG ret;
ULONG adapterIndex = 0;
if(2 == argc)
adapterIndex = _wtol(argv[1]);
// Open a capture file for saving frames.
HANDLE myCapFile;
ULONG CapSize;
ret = NmCreateCaptureFile(L"20sec.cap", 20000000, NmCaptureFileWrapAround, &myCapFile, &CapSize);
if(ret != ERROR_SUCCESS)
{
wprintf(L"Error opening capture file, 0x%X\n", ret);
return ret;
}
// Open the capture engine.
HANDLE myCaptureEngine;
ret = NmOpenCaptureEngine(&myCaptureEngine);
if(ret != ERROR_SUCCESS)
{
wprintf(L"Error opening capture engine, 0x%X\n", ret);
NmCloseHandle(myCapFile);
return ret;
}
//Configure the adapter.
ret = NmConfigAdapter(myCaptureEngine, adapterIndex, MyFrameIndication, myCapFile);
if(ret != ERROR_SUCCESS)
{
wprintf(L"Error configuration adapter, 0x%X\n", ret);
NmCloseHandle(myCaptureEngine);
NmCloseHandle(myCapFile);
return ret;
}
//Start capturing frames.
wprintf(L"Capturing for 20 seconds\n");
NmStartCapture(myCaptureEngine, adapterIndex, NmLocalOnly);
Sleep(20000);
wprintf(L"Stopping capture\n");
NmStopCapture(myCaptureEngine, adapterIndex);
NmCloseHandle(myCaptureEngine);
NmCloseHandle(myCapFile);
return 0;
}
Одна из ошибок, которые я получаю:
Вот мои шаги:
Я не знаю, если у меня может быть проблема с совместимостью, потому что инструкции для VS 2005 и 2008 ..
Заранее спасибо!
Я думаю, что это проблема 32/64 бит.
В моем случае, у меня есть настольный компьютер с 64-битной ОС Windows 7.
У меня есть затмение с Windows SDK 7 toolchain.
У меня те же ошибки с твоей, но в другой среде.
У меня также есть 64-разрядная версия Microsoft Network Monitor 3.4.
Как видите, это 64-битная версия.
Итак, я успешно скомпилировал мою тестовую программу с параметром компоновщика ‘/ machine: x64’.
Эта проблема может быть в 64-битной библиотеке монитора без 32-битной поддержки.
Итак, я думаю, что вам нужен еще один вариант компоновщика, такой же, как и у меня.
Вот мой журнал компиляции с Windows SDK 7.
Обратитесь на сайт Microsoft Вот.
Слишком поздний ответ, может быть ..
Других решений пока нет …