c调用api打开文件对话框
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd )
{
OPENFILENAME ofn;
//在内存中开辟一块空间,存放用户选取的文件名
char szFile[MAX_PATH];//MAX_PATH是系统定义的一个宏值为260,Windows操作系统文件路径的最大长度
ZeroMemory(&ofn,sizeof(ofn));//将这个结构体变量定义为0
ofn.lStructSize = sizeof(ofn);//获取结构体的大小
ofn.lpstrFile = szFile;//szFile是一个字符数组,那么szFile这个名字就代表这个字符数组的首地址这是一个指针的应用,把接收选择文件名的数组的地址传递到GetOpenFileName函数中。
ofn.lpstrFile[0] = TEXT('\0');//效果等价于ZeroMemory(szFile,sizeof(szFile));
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("所有文件(*.*)\0*.*\0Text(*.TXT)\0*.TXT\0");
ofn.nFilterIndex = 1;//默认选择的过滤器,索引从1开始
// 指向接收选择的文件的文件名和扩展名的缓冲(不带路径信息)。这个成员可以是NULL。
ofn.lpstrFileTitle = NULL;
//指定lpstrFileTitle缓冲的大小,以TCHARs为单位。对于ANSI版本,是字节的个数;对于Unicode版本,是字节的个数。如果lpstrFileTitle是NULL,这个成员被忽略。
ofn.nMaxFileTitle = 0;
//指向以空字符结束的字符串,可以在这个字符串中指定初始目录。
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;//OFN_PATHMUSTEXIST路径必须存在,OFN_FILEMUSTEXIST文件必须存在
if (GetOpenFileName(&ofn))
{
MessageBox(NULL,szFile,"",MB_OK);
}
return 0;
}
相关文档:
本文摘自I18nGuy
主页的一篇内容,原文地址:http://www.i18nguy.com/unicode/c-unicode.zh-CN.html
这份文档简要的说明了如何修改你的C/C++代码使之支持Unicode。在这里并不准备
解释太多相关的技术细节并且我得假定你已经基本熟悉Microsoft支持Unicode的方式。
它的主要目的是方便你查询相关的数据类型和函数,以及修 ......
public可以被任意存取;
protected只可以被本类和其继承子类存取;
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内 ......
//获得汉字的区位码
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes("啊");
int i1 = (short)(array[0] - ''\0'');
int i2 = (short)(array[1] - ''\0'');
//unicode解码方式下的汉字码
array = System.Text.Encoding.Unicode.GetBytes("啊");
i1 = (short)(arra ......
当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换。那么能不能不用临时变量而交换两个数的值呢?可以的!C语言提供的异或运算就可以实现这样的操作。
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, ......