VC 实现文件关联

合集下载

电脑如何设置文件关联

电脑如何设置文件关联

电脑如何设置文件关联文件关联是指将特定的文件类型与相应应用程序进行绑定,使得当用户双击文件时,计算机可以自动使用正确的应用程序来打开该文件。

通过设置文件关联,可以提高工作和学习的效率,本文将向你介绍如何在电脑上设置文件关联。

一、Windows系统下设置文件关联在Windows系统中,设置文件关联非常简单,可以按照以下步骤进行操作:1. 打开“控制面板”点击开始按钮,在搜索栏中输入“控制面板”,然后点击打开。

2. 进入“默认程序”在控制面板中,找到并点击“默认程序”。

3. 选择“关联文件类型”在默认程序界面中,可以看到“关联文件类型”这一项,点击进入。

4. 找到需要设置关联的文件类型在关联文件类型界面,可以找到各种已有的文件类型及其对应的默认打开程序。

根据自己的需要,找到需要设置关联的文件类型。

5. 修改默认程序选中需要设置关联的文件类型,点击右侧的“更改程序”按钮。

然后从弹出的应用程序列表中选择你想要用来打开该文件类型的程序。

6. 确认设置点击“确定”按钮,保存修改后的文件关联设置。

从现在起,当你双击该类型的文件时,计算机将使用你所设置的默认程序来打开它。

二、Mac系统下设置文件关联在Mac系统中,设置文件关联也很简单,可以按照以下步骤进行操作:1. 选中文件在Finder中找到需要设置文件关联的文件,点击右键,在弹出的菜单中选择“打开方式”,然后选择“其他”。

2. 选择应用程序在弹出的对话框中,可以看到各种应用程序。

可以直接从列表中选择你希望用来打开该文件的应用程序,或者点击左侧的“应用程序”文件夹,在右侧的列表中选择。

3. 确认设置选择完应用程序后,点击“打开”按钮即可。

从现在起,当你双击该文件时,计算机将使用你所设置的应用程序来打开它。

三、常见问题与解决方法1. 如何取消文件关联?如果你想取消某个文件类型的关联,可以按照上述步骤进入文件关联设置界面,在需要取消关联的文件类型上点击右键,然后选择“删除”。

VC利用内存映射文件处理大文件

VC利用内存映射文件处理大文件

0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { TRACE("创建文件对象失败,错误代码:%d\r\n", GetLastError()); return; } // 创建文件映射对象 HANDLE hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL); if (hFileMap == NULL) { TRACE("创建文件映射对象失败,错误代码:%d\r\n", GetLastError()); return; } // 得到系统分配粒度 SYSTEM_INFO SysInfo; GetSystemInfo(&SysInfo); DWORD dwGran = SysInfo.dwAllocationGranularity; // 得到文件尺寸 DWORD dwFileSizeHigh; __int64 qwFileSize = GetFileSize(hFile, &dwFileSizeHigh); qwFileSize |= (((__int64)dwFileSizeHigh) << 32); // 关闭文件对象 CloseHandle(hFile); // 偏移地址 __int64 qwFileOffset = 0; // 块大小 DWORD dwBlockBytes = dwGran; while (qwFileSize > 0) { // 映射视图 if (qwFileSize < dwGran) dwBlockBytes = (DWORD)qwFileSize; LPBYTE lpbMapAddress = (LPBYTE)MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS, (DWORD)(qwFileOffset >> 32), (DWORD)(qwFileOffset & 0xFFFFFFFF), dwBlockBytes); if (lpbMapAddress == NULL) { TRACE("映射文件映射失败,错误代码:%d\r\n", GetLastError()); return; } // 对映射的视图进行访问 for(DWORD i = 0; i < dwBlockBytes; i++) {

如何在Windows操作系统中设置文件关联

如何在Windows操作系统中设置文件关联

如何在Windows操作系统中设置文件关联Windows操作系统中的文件关联是指将特定的文件类型与特定的程序或应用程序相关联。

这样,当我们双击一个文件时,操作系统会自动调用关联的程序或应用程序来打开该文件,方便我们的文件管理和使用。

本文将介绍如何在Windows操作系统中设置文件关联的方法。

一、使用默认设置关联文件在Windows操作系统中,很多文件类型已经预设了默认的关联程序。

当我们双击这些文件时,系统会自动调用默认的程序打开这些文件。

这些预设的文件关联通常在安装相关程序或应用程序时自动设置好,但有时候可能会被其他程序更改或覆盖。

如果我们想要使用默认设置的关联程序打开某个文件,可以通过以下步骤进行设置:1. 找到需要关联的文件,例如扩展名为.doc的Word文档。

2. 右键点击该文件,选择“打开方式”或“打开方式”下的“从列表中选择默认程序”。

3. 在弹出的窗口中,选择“常用程序”或“其他选项”,然后选择希望关联的程序,如Microsoft Word。

4. 勾选“将该程序设置为默认程序”,然后点击“确定”即可完成文件关联。

通过以上步骤,我们可以将文件关联恢复为默认设置,从而使用默认的程序打开文件。

二、自定义文件关联除了使用默认的文件关联设置,我们还可以自定义文件关联,将特定的文件类型与我们自己喜欢的程序或应用程序关联起来。

下面是自定义文件关联的步骤:1. 找到需要自定义关联的文件,例如扩展名为.txt的文本文件。

2. 右键点击该文件,选择“打开方式”或“打开方式”下的“从列表中选择默认程序”。

3. 在弹出的窗口中,选择“其他选项”或“浏览”,然后找到我们希望关联的程序或应用程序的可执行文件(一般是该程序或应用程序的安装文件)。

4. 选中该可执行文件,点击“确定”即可完成自定义的文件关联。

通过以上步骤,我们可以将文件类型关联到我们自己选择的程序或应用程序上。

三、修复文件关联问题有时候,我们可能会遇到文件关联出现问题的情况,例如双击一个文件无法打开或错误关联到其他程序。

如何设置电脑文件关联

如何设置电脑文件关联

如何设置电脑文件关联在现代社会中,电脑文件关联是我们经常需要处理的问题之一。

当我们打开一个文件时,电脑会自动选择默认程序进行打开。

然而,有时候我们希望将文件关联到其他程序,以满足个人需求。

本文将介绍如何设置电脑文件关联,让您能够根据自己的喜好和需求灵活选择打开文件的方式。

一、Windows系统设置电脑文件关联Windows操作系统为我们提供了简单而有效的方式来设置电脑文件关联。

以下是详细步骤:1. 找到要设置关联的文件类型。

您可以通过双击文件,查看它的扩展名(文件后缀)来确定文件类型。

例如,.docx表示Microsoft Word 文档。

2. 找到“控制面板”并打开。

您可以通过点击开始菜单,然后在搜索栏中输入“控制面板”来快速找到它。

3. 在“控制面板”中,选择“程序”或者“程序和功能”,然后点击“默认程序”。

4. 在“默认程序”窗口中,选择“关联一个文件类型或协议与某个程序”。

5. 在列表中找到您想要设置关联的文件类型,并点击它。

6. 点击右侧的“更改程序”按钮。

7. 在弹出的程序列表中,选择您想要关联的程序,或者点击“浏览”按钮来找到其他程序。

8. 确认选择后,点击“确定”按钮,完成文件关联的设置。

二、macOS系统设置电脑文件关联macOS操作系统也提供了简单易用的方式来设置电脑文件关联。

以下是详细步骤:1. 找到要设置关联的文件。

您可以通过双击文件,在弹出的对话框中查看文件详情,包括其类型。

2. 选择要关联的文件,并按下“Command + I”组合键(或者在菜单中选择“文件”>“显示简介”)。

3. 在弹出的文件信息窗口中,找到“打开方式”部分。

4. 点击“打开方式”下的“下拉菜单”按钮。

5. 从列表中选择您想要关联的程序,或者点击“其他”按钮来找到其他程序。

6. 选择关联程序后,点击“添加”按钮。

7. 关闭文件信息窗口,完成文件关联的设置。

三、Linux系统设置电脑文件关联Linux操作系统的文件关联设置方式可能会因发行版而异。

如何设置电脑的文件关联

如何设置电脑的文件关联

如何设置电脑的文件关联随着科技的不断发展,电脑已经成为现代人工作、学习及娱乐的重要工具之一。

电脑上的各种文件类型众多,而我们经常需要使用特定类型的软件来打开相应类型的文件。

因此,设置电脑的文件关联是非常重要的。

本文将介绍如何设置电脑的文件关联,让您轻松应对各种文件类型。

一、什么是文件关联文件关联是指将特定的文件类型与特定的软件进行绑定,使得双击文件时能够自动使用相应的软件打开文件。

比如,让电脑知道.xlsx文件需要使用微软的Excel软件打开,.mp4文件需要使用视频播放器打开等等。

二、设置文件关联的步骤设置电脑的文件关联并不复杂,下面将为您详细介绍具体的步骤。

1. 打开“控制面板”在Windows操作系统中,点击电脑屏幕左下角的“开始”按钮,然后选择“控制面板”选项。

2. 进入“默认程序”设置页面在控制面板中,找到并点击“默认程序”选项。

3. 选择“关联文件类型”在“默认程序”页面中,找到并点击“关联文件类型”选项。

4. 找到需要设置关联的文件类型在“关联文件类型”页面中,您可以找到各种常见的文件类型和相应的扩展名。

例如,如果要设置.pdf文件的关联,就需要找到并点击.pdf 文件类型。

5. 选择默认的打开方式在文件类型的详细页面中,您可以看到已经关联到该文件类型的默认程序。

如果您想更改关联程序,只需点击“更改程序”按钮,然后选择您想要的程序并点击“确定”按钮即可。

6. 手动添加文件关联除了修改默认程序外,有些文件类型可能并未关联到任何程序。

在文件类型的详细页面,您可以点击“添加”按钮手动添加文件关联。

在弹出的窗口中,选择合适的程序并点击“确定”按钮。

7. 检查关联设置在完成关联设置后,您可以通过双击相应的文件来检查设置是否成功。

如果一切正常,电脑会自动使用您设置的程序打开文件。

三、注意事项在进行文件关联设置时,有几个注意事项需要特别留意。

1. 明确文件类型在设置文件关联之前,应该清楚所需关联的文件类型。

c语言中.c文件与.h文件的关联

c语言中.c文件与.h文件的关联
H文件里面可以定义宏,什么是宏? 看--> #define LEDBLINK() PORTA ^= (1<< LED) C文件直接使用LEDBLINK(); 编译之前会用PORTA ^= (1<< LED) 来进行替换
其它结构体也是要在H里面定义类型,但是必须在C文件里面例化
一般一个C文件要搭配一个H文件,两者文件名相同,如 UART.c对于UART.h ,其它函数通过#include"UART.h",来调用UART.c里面定义的函数和变量
H文件里面是对同名的C文件里面内容的声明,C文件必须include同名的头文件,一般C文件需要用到的其它头文件(比如stdio.h),也在H文件里包含,见下面的例子
H文件就像一个销售部,C文件是生产部,客户了解一个公司的产品都是从销售部了解的,不会关注他是怎么生产的;另一方面,销售部挂的东西,都是根据生产部来的,两个文件的关义的全局变量要在头文件里面加extern 声明,叫其它包含这个H的C文件知道这里还有个全局变量
头文件一般要写成条件包含,这样在重复包含时,编译器自动把已经包含过的文件忽略掉
#ifndef __XXX_H
#define__XXX_H
#include <stdio.h>
.....
#endif
C文件里面写好的函数,要在对于的H文件挂个名,叫其它包含这个H的C文件知道这个函数的存在

基于VC++调用可执行文件与动态链接库的实现

基于VC++调用可执行文件与动态链接库的实现
UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow); lpCmdLine 参数指定路径及可执行文件名, uCmdShow 参数指定显示方式“( 1”表示正常显示,“2”表示最小化)。下 面我们在一个应用程序的某菜单项 (基于 CMyView 类)的 消息响应函数 OnExecution()中实现 对 可 执行 程 序“VB”的 调用: void CMyView: : OnExecution() { WinExec “( D: \\Program Files\\Microsoft Visual Stu- dio\\VB98\\vb6.exe ”, 1);
一个比较大型应用程序往往由一个主控模块和多个
子模块组成, 主控模块负责整个系统的集成, 管理调度各 子模块, 各子模块分别完成相对独立的功能。在集成方案 中, 作为主控模块的开发人员必须了解其它各子模块的接 口标准, 以便在主控模块实施调度时根据子模块的接口标 准进行参数传递, 通过各子模块彼此间的协作来完成整个 软 件 系 统 的 工 作 。一 般 各 子 模 块 由 不 同 的 开 发 人 员 设 计 制 作, 大多生成可执行文件, 或生成动态链接库。如何进行模 块集成? 本人采用 MS Visual C++(简称 VC)作为开发平台, 详述应用程序对可执行文件和动态链接库的调用过程, 为 基于 VC 的程序开发人员提供一个高效的软件集成方法。
2004. [4] 张 宏 林. Visual C++6.0 程 序 设 计 与 开 发 技 术[M]. 北 京 : 人 民 邮 电
出版社, 2004.
Calling Executable File and Fynamic Linkable Libr ar y Based on Visual c++

基于VC++调用可执行文件与动态链接库的实现

基于VC++调用可执行文件与动态链接库的实现

动态 链 接库 f 以下 简称 D L 通 常都 不 能 直接 运 行 , L1 也 小 能接 收 消息 它 们 足 一些 包 含 共 享 函数 库 的 二进 制 文 件 .可 以被 多个 应用 程 序 同 时 使 用 或 被 其 它 D L调 用 。 L 将模 块 生 成 D L. 节 省磁 盘 空 间 和 内存 . 利 于 资 源的 L 可 有
的 D L L。
模块 定 义文 件 为 gets ddf ra t .e.导 出 函数 为 it raet ec n ets G .
C mm n v o( t , t ) o o Dis rn i ) i i x ny。 1 对 可 执 行 文 件 的 调 用 如何在 一个 进程 【调 用另 一个 应用 程序 ? D I l MS N为我
i 0调 用 一个 求 最大 公 约数 的动 态链 接 库 ( e ts dd1 c ) L g aet . . r e l
假 设 头 文 件 为 gets d .. 引 入 库 文 件 为 ge t td1 . raet hh c rae c .b s i
动 态链 接 库 的_l 有 两 种方 式 :隐式 链 接 和 显 式加 』载 J I 载 这 里假定 用 户通 过选 择应 用程 序 的菜 单项 “ 动态链 接 席 ” 弹 出消息 框 显示 D L的调 用结 果 . L 21 隐式链 接 .
们提供 三个 S DK 函 数 :WiE e .S elx et ,C e n x c h l e ue r— E
隐 式链 接 又称 为静 念 J 载 。使 用 隐 式链 J u
接 . 作 系统 在 加载 廊用 程序 的同时 加载 应用 程 序所 使用 操
21I 动态链 接 提 供 D .. I L和 引 人 库 的渊 先住 应 用程
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC/MFC 设置程序与文件关联与双击文件获取文件路径(2008-10-10 10:59:15)分类:编程技术标签:vc/mfc设置程序与文件关联双击文件获取文件路径it如何设置程序与文件关联并且双击关联文件时获取文件的路径呢?一般来说可以通过写注册表的方式实现,在函数入口处实现功能。

例如在VC/MFC中,可以在应用程序的C**App.cpp文件中InitInstance()函数中实现该功能。

#include <string>using namespace std;//关联文件的后缀名,如"txt"、"doc"等string m_csExtension;string m_csShellOpenCommand;string m_csDocumentShellOpenCommand;//注册表中文件夹类名string m_csDocumentClassName;//关联文件的默认图标string m_csDocumentDefaultIcon;///////赋值函数//////void SetExtension( LPCTSTR szExtension ){m_csExtension = szExtension;}void SetShellOpenCommand( LPCTSTR szShellOpenCommand ){m_csShellOpenCommand = szShellOpenCommand;}void SetDocumentShellOpenCommand( LPCTSTR szDocumentShellOpenCommand ){m_csDocumentShellOpenCommand = szDocumentShellOpenCommand;}void SetDocumentClassName( LPCTSTR szDocumentClassName ){m_csDocumentClassName = szDocumentClassName;}void SetDocumentDefaultIcon( LPCTSTR szDocumentDefaultIcon ){m_csDocumentDefaultIcon = szDocumentDefaultIcon;}///////赋值函数////////////关键函数:实现写注册表的函数////////BOOL SetRegistryValue(HKEY hOpenKey,LPCTSTR szKey,LPCTSTR szValue,LPCTSTR szData){// validate inputif( !hOpenKey || !szKey || !szKey[0] ||!szValue || !szData ){::SetLastError(E_INVALIDARG);return FALSE;}BOOL bRetVal = FALSE;DWORD dwDisposition;DWORD dwReserved = 0;HKEY hTempKey = (HKEY)0;// length specifier is in bytes, and some TCHAR// are more than 1 byte eachDWORD dwBufferLength = lstrlen(szData) * sizeof(TCHAR);// Open key of interest// Assume all access is okay and that all keys will be stored to file// Utilize the default security attributesif( ERROR_SUCCESS == ::RegCreateKeyEx(hOpenKey, szKey, dwReserved, (LPTSTR)0, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, 0,&hTempKey, &dwDisposition) ){// dwBufferLength must include size of terminating nul// character when using REG_SZ with RegSetValueEx functiondwBufferLength += sizeof(TCHAR);if( ERROR_SUCCESS == ::RegSetValueEx(hTempKey, (LPTSTR)szValue, dwReserved, REG_SZ, (LPBYTE)szData, dwBufferLength) ){bRetVal = TRUE;}}// close opened keyif( hTempKey ){::RegCloseKey(hTempKey);}return bRetVal;}BOOL RegSetExtension(void){if( m_csExtension.empty() ){return FALSE;}std::string csKey = "." + m_csExtension;SetRegistryValue(HKEY_CLASSES_ROOT, csKey.c_str(), "", m_csDocumentClassName.c_str());if( !m_csShellOpenCommand.empty() ){csKey += "\\shell\\open\\command";SetRegistryValue(HKEY_CLASSES_ROOT, csKey.c_str(), "", m_csShellOpenCommand.c_str());}return TRUE;}BOOL RegSetDocumentType(void){if( m_csDocumentClassName.empty()){return FALSE;}std::string csKey = m_csDocumentClassName;SetRegistryValue(HKEY_CLASSES_ROOT, csKey.c_str(), "", m_csDocumentDescription.c_str());// DefaultIconif( !m_csDocumentDefaultIcon.empty() ){csKey = m_csDocumentClassName;csKey += "\\DefaultIcon";SetRegistryValue(HKEY_CLASSES_ROOT, csKey.c_str(), "", m_csDocumentDefaultIcon.c_str());}// shell\open\commandif( !m_csShellOpenCommand.empty() ){csKey = m_csDocumentClassName;csKey += "\\shell\\open\\command";SetRegistryValue(HKEY_CLASSES_ROOT, csKey.c_str(), "",m_csShellOpenCommand.c_str());}return TRUE;}BOOL RegSetAllInfo(void){RegSetExtension(); RegSetDocumentType();return TRUE;}//注册程序与文件后缀名的关联void RegisterFileAndProgram(){////一个应用程序与多个文件后缀关联//// #define strExternsionLength 4LPCTSTR strExtension[] ={"bmp","jpg","jpe","jpeg"};CGCFileTypeAccess TheFTA;TCHAR szProgPath[MAX_PATH * 2];//获取程序路径::GetModuleFileName(NULL, szProgPath, sizeof(szProgPath)/sizeof(TCHAR)); CString csTempText;for(int i = 0; i < strExternsionLength; ++i){//设置程序需要关联的后缀名,如"txt" "doc" 等SetExtension(strExtension[i]);csTempText.Format("\"%s\" %s",szProgPath,"\"%1\"");SetShellOpenCommand(csTempText);SetDocumentShellOpenCommand(csTempText);//设置注册表中文件类的别名,例如可以是程序名称:**.exeSetDocumentClassName("**");// use first icon in programcsTempText = szProgPath;csTempText += ",0";SetDocumentDefaultIcon(csTempText);RegSetAllInfo();}}//入口函数:初始化所需的操作BOOL C**App::InitInstance(){////////////***Code***//////////注册程序与文件后缀名的关联RegisterFileAndProgram();// 分析标准外壳命令、DDE、打开文件操作的命令行CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);//获取命令行传过来的参数:双击打开的文件的文件路径名称CString strFilePathName = cmdInfo.m_strFileName;// 调度在命令行中指定的命令。

如果// 用/RegServer、/Register、/Unregserver 或/Unregister 启动应用程序,则返回FALSE。

相关文档
最新文档