syntax error : '__stdcall'
#ifdef __cplusplus
#define DLL_API extern "C" __declspec (dllexport)
#else
#define DLL_API __declspec (dllexport)
#endif
typedef NTSTATUS (NTAPI *NTALLOCATEVIRTUALMEMORY)(IN HANDLE ProcessHandle,
IN OUT PVOID *BaseAddress,
IN ULONG_PTR ZeroBits,
IN OUT PSIZE_T RegionSize,
IN ULONG AllocationType,
IN ULONG Protect
);
DLL_API NTALLOCATEVIRTUALMEMORY NtAllocateVirtualMemoryOrig;
上面是写在C++的DLL文件里面
然后编译的时候出现如下错误:
error C2059: syntax error : '__stdcall'
error C2091: function returns function
error C2146: syntax error : missing ';'
before identifier 'NtAllocateVirtualMemoryOrig'
fatal error C1004: unexpected end of file found
其它地方没错,就这里报错,好象是调用规则问题,但不知道要怎么写才不会出错,想请教一下论坛上谁写过这样的
[解决办法]
从提示信息来看是编译器不认识NTALLOCATEVIRTUALMEMORY。
你这句这样写是不是有什么问题啊:typedef NTSTATUS (NTAPI *NTALLOCATEVIRTUALMEMORY)(IN HANDLE ProcessHandle
[解决办法]
DLL_API NTALLOCATEVIRTUALMEMORY NtAllocateVirtualMemoryOrig;
====
你这句话写的啥意思,有这样写导出函数的???????
[解决办法]
你这句声明:
typedef NTSTATUS (NTAPI *NTALLOCATEVIRTUALMEMORY)(IN HANDLE ProcessHandle,
IN OUT PVOID *BaseAddress,
IN ULONG_PTR ZeroBits,
IN OUT PSIZE_T RegionSize,
IN ULONG AllocationType,
IN ULONG Protect
);
函数的返回类型NTSTATUS的定义是什么?这句:error C2091: function returns function,
函数返回了一个函数,我觉得还是你这句typedef有问题。
[解决办法]
你这代码不是完整代码吧?错误信息也似乎不全。感觉是其他地方导致错误的,看看最后一个错误尤其有此感觉