真爱无限的知识驿站

学习积累技术经验,提升自身能力

c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理

windows系统磁盘文件存储:

分区格式:NTFS / FAT32


GetSystemDirectory();//获取系统路径

GetWindowsDirectory();//获取windows路径

GetCurrentDirectory();//获取当前工作目录

SetCurrentDirectory();//修改当前工作目录

C++windows内核编程笔记day11 win32静态库和动态库的使用

windows库程序:

静态库:

源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB


动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL



静态库(C语言):

C++windows内核编程笔记day09_day10,对话框和窗口基本控件等的使用

//设置字体颜色

SetTextColor(hdc,RGB(255,0,0));



//窗口背景

//wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);

//wce.hbrBackground=CreateSolidBrush(RGB(0,0,255));



//设置字体背景

SetBkColor(hdc,RGB(0,0,200));

C++windows内核编程笔记day07_day08,可视化建菜单、加速键使用、绘图等

可视化操作创建的菜单,加载到窗口。

方法1:注册时指定菜单

wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源

方法2:

//创建窗口时加载菜单资源

HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN));

menumain 传入 CreateWindowEx();//倒数第三个参数

C++windows内核编程笔记day06 代码创建菜单


创建菜单:

HMENU CreateMenu(VOID);

添加菜单项:

BOOL AppendMenu(  HMENU hMenu,         // handle to menu

  UINT uFlags,         // menu-item options

  UINT_PTR uIDNewItem, // identifier, menu, or submenu

C++windows内核编程笔记day03_day04_day05

windows消息机制、消息格式和消息处理1


unicode支持,windows下用:

1、先在#include<windows.h>上面,定义 UNICODE

#define UNICODE

2、定义字符串

TCHAR * ptxt=TEXT("学习hello c++");

3、根据需要,打印不同格式字符串

#ifdef UNICODE

    wprintf(L"%s ",ptxt);

C++windows内核编程笔记day01_day02

windows编程介绍、windows 库和头文件介绍


exe文件:.exe,可执行文件

静态库文件:*.lib,调用时,源代码嵌入到调用位置

动态库文件:*.dll,调用时,函数地址被传入


--写编译软件,要懂编译原理.

windows 库和头文件

kernel32.dll-提供了核心的API,例如进程、线程、内存管理等

user32.dll-提供了窗口消息等API

开发.net mvc3遇到奇怪的事情+解决方案

今天开发.net mvc3遇到奇怪的事情。

用火狐浏览器,打开index页面,请求index控制器很多次,查询数据库的代码多次执行,服务器变慢,
而且没刷新页面,过一段时间就有一两个请求,无限循环,这事从来没遇见过,真是一头雾水。

认真查看了一下原因,原来是图片的src,数据库中路径没有的情况下,src="/"  ,直接请求了默认的index控制器。

之后通过 在Index控制器中加一段处理代码处理了,而且还可以有图片没有的情况下,显示一张默认图片。

代码如下,加在控制器最前。

            if (Request.UrlReferrer != null)//某页面上图片请求的 UrlReferrer就是页面本身
            {
                string Accept = Request.Headers["Accept"];
                if (Accept.StartsWith("image/")  && Accept.Contains("application/")==false ) //图片请求一般是:image/png,image/*;q=0.8,*/*;q=0.5,IE和firefox中请求不同,页面请求也包含image/
                {
                    return File("/Content/images/Show/Show_pic07.jpg","image/jpeg");
                    //如果是图片src请求,返回一张默认图片,后面查询数据库的代码才不会重复执行。
            //如果不返回正确的图片,火狐浏览器会无限循环请求下去.
                }
            }

总结:本来10分钟能解决的事,花了半个小时 ,这和经验有关,开发过程中,得不断积累经验。

UC编程04-io读写write/read系统函数的使用

//myuc.h

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
#include<sys/types.h>
#include<sys/mman.h>
#include<sys/stat.h>


UC编程03-内存分配与内存映射函数sbrk/brk/mmap/munmap

函数说明:


code1

#include<stdio.h>
#include<unistd.h>
int main()
{
void* empty=sbrk(0);
void * p1=sbrk(4);//虚拟内存映最少射一个内存页4096字节
int *pi=p1;
*(pi+2)=120;//给p3赋值
void* p2=sbrk(4);
void* p3=sbrk(4);
printf("p1=%p,p2=%p,p3=%p
",p1,p2,p3);
sbrk(-8);
sbrk(4093);
printf("4097字节
");
sleep(15);
sbrk(-1);
printf("4096字节
");
sleep(15);
sbrk(-4096);
printf("0字节
");
sbrk(123);
double * pd=sbrk(0);//取最后空间的首地址
brk(pd+1);//分配一个double空间
int result=brk(empty);//回收所有
//printf("p1=%p,p2=%p,p3=%p
",p1,p2,p3);
//printf("p3=%d
",*(int*)p3);
return 0;
}

code2

<< < 9 10 11 12 13 14 15 16 17 18 > >>

Powered By Z-BlogPHP 1.7.3

Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号