关于API SDK和MFC的对照学习

简介:

   如鹏网的《C语言也能干大事》教程中使用的是C语言调用API SDK的方式来进行Windows程序的编写,有的同学在学习的过程中到网上查找课上教的一些函数的写法,但是有时候会碰到一些用MFC来进行调用的方式,不知道怎么转换成API SDK的方式。首先要肯定和鼓励这位同学的想法,因为他已经开始明白语言是相通的这个道理了。


   MFC是微软使用C++语言对API SDK进行封装后的一个Windows开发框架库,MFC对API SDK的封装简单,可以看到“赤果果”的API SDK的影子,MFC的包装一般只是隐藏了资源句柄,在改写成API的方式的时候一般只要将方法最开始增加一个参数,然后这个参数填相应的句柄就可以了。



举例说明:
例1
MFC代码:edit1->SetWindowText(TEXT("hello"));
edit1表示一个控件,因此改写到API方式的话只要如下调用:
SetWindowText(hwndEdit,TEXT("hello"))//hwndEdit是控件的句柄
例2
void CMainFrame::OnStartTimer() 
{
  m_nTimer = SetTimer(1, 2000, 0);
}
CMainFrame是一个窗口,因此如下改装:
void Main_OnStartTimer() 
{
  m_nTimer = SetTimer(hwnd,1, 2000, 0);//hwnd是窗口的句柄
}
例3
CClientDC dc(this); 
dc.SelectObject(&pen); 
CClientDC是一个画布,因此如下改装:
SelectObject(hdc,&pen);//hdc是画布的句柄。
“方法最开始增加一个参数,然后这个参数填相应的句柄”,嘎嘎,一点技术含量都没有,不过确实就是这么简单,

例1
MFC代码:edit1->SetWindowText(TEXT("hello"));
edit1表示一个控件,因此改写到API方式的话只要如下调用:
SetWindowText(hwndEdit,TEXT("hello"))//hwndEdit是控件的句柄
例2
void CMainFrame::OnStartTimer() 
{
  m_nTimer = SetTimer(1, 2000, 0);
}
CMainFrame是一个窗口,因此如下改装:
void Main_OnStartTimer() 
{
  m_nTimer = SetTimer(hwnd,1, 2000, 0);//hwnd是窗口的句柄
}
例3
CClientDC dc(this); 
dc.SelectObject(&pen); 
CClientDC是一个画布,因此如下改装:

SelectObject(hdc,&pen);//hdc是画布的句柄。



“方法最开始增加一个参数,然后这个参数填相应的句柄”,嘎嘎,一点技术含量都没有,不过确实就是这么简单.


PS:感觉这篇文章的确在利用SDK编程的时候避免因为需要再了解MFC的麻烦!赞一个










本文转自 qq414207614 51CTO博客,原文链接:http://blog.51cto.com/skytina/1405181,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
API 开发工具 图形学
PicoVR Unity SDK⭐️五、常用API接口函数一览
PicoVR Unity SDK⭐️五、常用API接口函数一览
|
24天前
|
JSON Java API
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
|
1月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
2月前
|
分布式计算 大数据 Go
MaxCompute操作报错合集之使用go sdk调用GetTunnelEndpoint出现报错:InvalidAction.NotFoundSpecified api is not found,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
2月前
|
存储 API Go
学习gin-vue-admin之创建api和swagger
学习gin-vue-admin之创建api和swagger
|
2月前
|
JavaScript 前端开发 Java
|
3月前
|
安全 API 开发工具
全面对比API和SDK
全面对比API和SDK
153 0
|
20天前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
36 0
|
1月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
134 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
1月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
68 4