阅读:3094回复:2
请教使用wdk编译MiniFilter驱动中通信用的客户端代码出错问题,请Devia版主进来瞧瞧
想把下帖中的程序编译成动态链接库,编译出错,说是FilterSendMessage and FilterConnectCommunic找不到,可我已经包含了头文件FltUser.h,郁闷啊
|
|
沙发#
发布于:2008-01-16 10:50
CommClient.cpp
/***********************************************************************/ #include <windows.h> #include "FltUser.h" #include <stdio.h> #define COMM_PORT_NAME L"\\CommPort" typedef enum _READ_DIR_COMMAND { FStart } READ_DIR_COMMAND; struct READ_DIR_MESSAGE { READ_DIR_COMMAND Command; }; extern "C" _declspec(dllexport) bool SendReadMessage(void) { HRESULT hResult = S_OK; HANDLE port = INVALID_HANDLE_VALUE; DWORD bytesReturned = 0; READ_DIR_MESSAGE command; command.Command = FStart; hResult = FilterConnectCommunicationPort(L"\\CommPort", 0,NULL,0,NULL,&port ); if (IS_ERROR( hResult )) { printf( "Could not connect to filter: 0x%08x\n", hResult ); return 0; } else { printf("connect ok \n"); } /*hResult = FilterSendMessage( port, &command, sizeof(READ_DIR_COMMAND), 0, 0, &bytesReturned ); */ return TRUE; }; Sources /*****************************************************************************/ TARGETNAME=CommClient TARGETPATH=obj TARGETTYPE=DYNLINK UMTYPE=windows USE_MSVCRT=1 #TARGETLIBS=$(TARGETLIBS) \ # $(IFSKIT_LIB_PATH)\fltLib.lib TARGETLIBS=$(TARGETLIBS) \ $(IFSKIT_LIB_PATH)\fltLib.lib \ $(SDK_LIB_PATH)\kernel32.lib \ $(SDK_LIB_PATH)\advapi32.lib INCLUDES=$(INCLUDES); \ $(IFSKIT_INC_PATH); \ $(DDK_INC_PATH); \ ..\inc DEFFILE=CommClient.def SOURCES = CommClient.cpp The build result is as following: D:\incubator\CommClient>build BUILD: Compile and Link for x86 BUILD: Loading c:\winddk\6000\build.dat... BUILD: Computing Include file dependencies: BUILD: Start time: Wed Jan 16 10:14:57 2008 BUILD: Examining d:\incubator\commclient directory for files to compile. d:\incubator\commclient - 1 source files (41 lines) BUILD: Saving c:\winddk\6000\build.dat... BUILD: Compiling d:\incubator\commclient directory _NT_TARGET_VERSION SET TO WINXP Compiling - commclient.cpp errors in directory d:\incubator\commclient d:\incubator\commclient\commclient.cpp(24) : error C3861: 'FilterConnectCommunic ationPort': identifier not found d:\incubator\commclient\commclient.cpp(36) : error C3861: 'FilterSendMessage': i dentifier not found Building Library - objchk_wxp_x86\i386\commclient.lib link : error LNK1181: cannot open input file 'objchk_wxp_x86\i386\commclient.obj ' BUILD: Compile errors: not linking d:\incubator\commclient directory BUILD: Finish time: Wed Jan 16 10:14:58 2008 BUILD: Done 3 files compiled - 2 Errors 1 library built - 1 Error D:\incubator\CommClient> The declare of FilterSendMessage and FilterConnectCommunic is in FltUser.h. error C3861: 'FilterConnectCommunicationPort': identifier not found error C3861: 'FilterSendMessage': identifier not found |
|
板凳#
发布于:2008-03-12 18:11
TARGETNAME=MiniDll
TARGETTYPE=DYNLINK DLLENTRY=_DllMainCRTStartup USE_MSVCRT=1 DLLDEF=MiniDll.def SOURCES=MiniDll.c C_DEFINES=$(C_DEFINES) -DUNICODE -D_UNICODE INCLUDES=$(INCLUDES);$(IFSKIT_INC_PATH);$(DDK_INC_PATH);..\..\inc;..\sys TARGETLIBS=$(SDK_LIB_PATH)\user32.lib \ $(SDK_LIB_PATH)\kernel32.lib \ $(IFSKIT_LIB_PATH)\fltLib.lib \ $(IFSKIT_LIB_PATH)\fltMgr.lib \ $(IFSKIT_LIB_PATH)\ntoskrnl.lib \ $(IFSKIT_LIB_PATH)\hal.lib |
|