公开课小结--0x01Windows
来源:互联网 发布:java 内存泄漏 编辑:程序博客网 时间:2024/09/21 09:27
SDK:software develop kits
(API的集合)
MFC:Microsoft foundation class
- messagebox(hwnd,L" ",L" ",MB_OK); win32 PSDK ->API
- messagebox (L" ") MFC PSDK ->API
文件读取:
int readFile(char* path,void** buff,long &size)
{
FILE* fp = NULL;
if ((fp = fopen(path, "rb")) == NULL)
{
printf("fopen()打开文件失败\n");
return 0;
}
fseek(fp, 0, SEEK_END);//把文件内部指针定位到结束的位置,成功返回0;
size = ftell(fp);
rewind(fp);//把文件内部指针重新定位到文件的起始位置
if((*buff = (char*)malloc(size)) == NULL)
{
printf("申请内存失败\n");
return 0;
}
fread(*buff, size, 1, fp);
fclose(fp);
return 1;
}
复制文件至系统目录:
原型:_INTRIMP wchar_t *wcscat(
wchar_t *strDestination, //'\0'结尾的目标字符串
const wchar_t *strSource //'\0'结尾的源字符串
);
用法:#include <stdlib.h>
功能:把strSource所指字符串添加到strDestination结尾处,覆盖strDestination结尾处的'\0'并添加'\0'。
说明:strSource和strDestination所指内存区域不可以重叠且strDestination必须有足够的空间来容纳strSource的字符串。
返回值 : 返回指向strDestination的指针. No return value is reserved to indicate an error.
备注 : 因为wcscat在strDestination追加strSource前不进行检查,这是一个缓冲区溢出的潜在原因。故使用时应注意。推荐使用wcscat_s替代.
#include "stdafx.h"
#include <windows.h>
int main()
{
wchar_t strSystemDir[MAX_PATH] = {};
wchar_t strWindowsDir[MAX_PATH] = {};
wchar_t strSelfDir[MAX_PATH] = {};
GetSystemDirectoryW(strSystemDir, MAX_PATH);
GetWindowsDirectoryW(strWindowsDir, MAX_PATH);
GetModuleFileNameW(0, strSelfDir, MAX_PATH);
wcscat_s(strSystemDir, L"\\CopyFileDemo_.exe");
wcscat_s(strWindowsDir, L"\\CopyFileDemo_.exe");
if (FALSE == CopyFileW(strSelfDir, strSystemDir, FALSE))
{
DWORD dwError = GetLastError();
printf("%d\n", dwError);
}
if (FALSE == CopyFileW(strSelfDir, strWindowsDir, FALSE))
{
DWORD dwError = GetLastError();
printf("%d\n", dwError);
}
return 0;
}
WINSOCK:
*****************
winsockServer
*****************
#include "stdafx.h"
#include <WinSock2.h>
#include <Windows.h>
int main()
{
WSADATA wsaData = {};
WSAStartup(MAKEWORD(2, 2), &wsaData);
//socket(通信协议族tcp/ip)
SOCKET sockServer = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
//SOCKET s = socket(PF_INET, SOCK_DGRAM, IPPROTO_TCP); udp
sockaddr_in sockAddr = {};
//协议族
sockAddr.sin_family = PF_INET;
//ip 当前需要制定的ip地址
sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sockAddr.sin_port = htons(10086);
bind(sockServer, (SOCKADDR*)&sockAddr, sizeof(sockAddr));
listen(sockServer, 10);
SOCKET sockClient = {};
SOCKADDR addrClient = {};
int nSize = sizeof(addrClient);
sockClient = accept(sockServer, &addrClient, &nSize);
printf("客户端已连接");
closesocket(sockServer);
closesocket(sockClient);
WSACleanup();
return 0;
}
******************
winsockClient
******************
// WinSockDemoClient.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <WinSock2.h>
#include <Windows.h>
#pragma comment(lib,"ws2_32")
int main()
{
WSADATA wsaData = {};
WSAStartup(MAKEWORD(2, 2), &wsaData);
SOCKET sockClient = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
sockaddr_in addrServer = {};
addrServer.sin_family = PF_INET;
addrServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addrServer.sin_port = htons(10086);
connect(sockClient, (SOCKADDR*)&addrServer, sizeof(addrServer));
closesocket(sockClient);
WSACleanup();
return 0;
}
0 0
- 公开课小结--0x01Windows
- 公开课小结
- unity3d 英保通公开课小结 1-38讲
- 公开课
- 公开课
- 公开课
- 公开课
- 公开课
- 斯坦福iOS7公开课-Lesson1-4知识点小结(自用)
- 英宝通Unity4.0公开课下载地址
- 星火公开课第二次公开课答疑
- 敏捷公开课
- 自动化测试公开课
- 哈佛大学公开课
- 网易公开课
- 推荐网易公开课
- IPHONE开发公开课
- 好的公开课
- LeetCode: Ugly Number II
- 用户组管理系列(二):权限设置
- Cordova下Hybird App封装0901
- Oracle:SQL语句--创建用户
- 【Unity3d】——Failed to query D3D11 context for ID3DUserDefinedAnnotation interface
- 公开课小结--0x01Windows
- CSS属性之背景与文本
- Cannot change version of project facet Dynamic web
- OpenGL 和 DirextX
- 欢迎使用CSDN-markdown编辑器
- 文本处理工具系列(一):文本的查看、分析、统计和文本过滤工具grep
- 把正整数 n 转化成最少个数字的平方
- NHibernate使用入门(六)
- bfg.jar(清除 GIT commit 所有历史记录)