编写跨平台动态库load问题

以下是代码。
// testexe.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <WinDef.h>
#include <Winbase.h>
#include <stdlib.h>
#include <cstring>
#include <afx.h>
//#define FN_TESTDLL_DLL "tesedll.dll"
int _tmain(int argc, _TCHAR* argv[])
{
 //   char szFilePath[_MAX_PATH];
// int pos;

// GetModuleFileName(NULL, szFilePath, sizeof(szFilePath));
// CString szPath(szFilePath);
// szPath.MakeUpper();
// pos = szPath.Find("TESTEXE.EXE");
// CString szExePath;
// szExePath = szPath.Left(pos);

// HINSTANCE hProtocol;
// hProtocol = LoadLibrary((LPCTSTR)(szExePath+FN_TESTDLL_DLL));



return 0;
}

以下是生成的时候的错误信息。我的操作系统是64位win7旗舰版,用的VS2010。创建的是预编译控制台程序。字符集用的多字节字符集。是不是我的环境有问题啊。求教各位大侠了!

1>------ 已启动生成: 项目: testexe, 配置: Debug Win32 ------
1>生成启动时间为 2012/4/15 0:12:53。
1>InitializeBuildStatus:
1>  正在对“Debug\testexe.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  所有输出均为最新。
1>  testexe.cpp
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C2146: 语法错误: 缺少“;”(在标识符“ContextRecord”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(6361): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12983): error C2065: “PCONTEXT”: 未声明的标识符
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2146: 语法错误: 缺少“)”(在标识符“ContextRecord”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): warning C4229: 使用了记时错误: 忽略数据上的修饰符
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2182: “RtlCaptureContext”: 非法使用“void”类型
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2491: “RtlCaptureContext”: 不允许 dllimport 数据 的定义
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(12984): error C2059: 语法错误:“)”
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372): error C2143: 语法错误 : 缺少“;”(在“__stdcall”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13376): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(14982): error C3861: “__readfsdword”: 找不到标识符
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C2146: 语法错误: 缺少“;”(在标识符“LPCONTEXT”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C2378: “PCONTEXT”: 重定义;符号不能由 typedef 重载
1>          c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(13372) : 参见“PCONTEXT”的声明
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(1048): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(3610): error C2061: 语法错误: 标识符“PCONTEXT”
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4449): error C2061: 语法错误: 标识符“LPCONTEXT”
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4457): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4457): error C2143: 语法错误 : 缺少“,”(在“*”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15112): error C2143: 语法错误 : 缺少“;”(在“__stdcall”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15112): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(15116): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
1>
1>生成失败。
1>
1>已用时间 00:00:00.49

========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========




#include <Windows.h>
即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值