草庐IT

c# - Windows API : Assign Icon of filetype X to my file

我读过iconhandlers,但我不确定如何与他们合作。假设我有一个C#应用程序(或只是一个Windows文件系统对象,例如.LNK文件),我想为其分配图标,当前正在使用的PDF文件(或一个MSWord文件),尽管应用程序本身不是PDF文件。图标是如何分配的/该关联保存在哪里?当使用ResourceHacker等工具时,我可以在应用程序文件中找到图标(当然PDF文件本身没有图标)。在HKCR下的注册表中,我可以找到所有文件类型及其各自的打开器,图标在哪里定义?这归类为多个问题-我最感兴趣的是如何将系统当前分配的文件类型图标(例如PDF)分配给我的应用程序。

c++ - 每次调用sprintf之前如何调用my_function?

sprintf是平台提供的API。我想在使用时过滤某种格式。我的想法是:#includeintmy_sprintf(...){my_filter_function(...);return::sprintf(...);}#definesprintfmy_sprintf然后将这些代码放到pch中。但我仍然担心它无法涵盖所有​​用途,有些在预建库中,并非每个项目都有pch。你还有别的想法吗?谢谢。它在Windows上。 最佳答案 您不能“覆盖”内置函数。此外,使用宏替换其名称会导致您的程序出现未定义的行为。所以,甚至不要试图改变标准库的行

Windows : Have my program run in kernel mode?

我目前正在了解Windows操作系统的不同运行模式(内核模式与用户模式)、设备驱动程序、它们各自的优缺点以及一般的计算机安全性。我想创建一个实际示例,说明在内核模式下运行的故障设备驱动程序会对系统造成什么影响,例如破坏用于关键操作系统进程的内存。如何直接在内核模式而不是用户模式下执行我的代码?我是否必须编写虚拟设备驱动程序并安装它才能执行此操作?在哪里可以阅读有关Windows内核和用户模式的更多信息?我知道这样做的危险,并将在仅运行WindowsXP的虚拟机上进行所有实验 最佳答案 “WindowsInternals”一书对所讨论

C++ Windows 如何将 'unsigned int' 转换为 'TCHAR *'?

我是Windows上的C++新手。你能告诉我如何将unsignedint转换为TCHAR*吗? 最佳答案 通常的方法是使用swprintf将宽字符打印到wchar_t(TCHAR通常定义为)。要将数字打印到TCHAR中,您应该使用_stprintf,正如@hvd在下面提到的(一怒之下)。这样,如果定义了UNICODE,您将使用宽字符,如果未定义UNICODE,您将使用ASCII字符。intmyInt=400;TCHARbuf[300];//whereyouputresult_stprintf(buf,TEXT("Formatstri

windows - CUDA编程: How to get my Legacy GPU to work with CUDA 7. 5个工具包?

外行在这里尝试学习新东西。光问这个问题太无聊了。如果不想看,直接跳到最后一行。这是故事:信不信由你。我当前的台式机中有一block可以正常工作的GeForce8800GTS,它只是为了工作而不是为了游戏而组合在一起的。当我输入时,它现在使用DVI-to-HDMI电缆连接到我的HDTV。我想得越多,它的作用就越让我惊讶。几天前弹出一条通知,提示我更新GPU的驱动程序。令我惊喜的是,Windows10在2016年仍然支持这一传统作品。干得好NVIDIA。然后我想,“我真的可以和这个child一起做CUDA编程吗?”多年来我一直在不同的主板上使用它,并多次考虑升级它。但我不再玩游戏了,所以我

python - ctypes:printf 返回长度,它是 int 而不是字符串

我正在使用ctypes并在Python2.5中加载msvcrt.dll。>>>fromctypesimport*>>>libname='msvcrt.dll'>>>libc=CDLL(libname)>>>libc.printf("HelloWorld\n")12>>>为什么不打印HelloWorld? 最佳答案 Whydoesn'titprintHelloWorld?当从控制台运行时,它在我的Python(ActiveState,2.6)中执行:>>>fromctypesimport*>>>libc=CDLL('msvcrt.dl

windows - Windows保护模式下的int 13h?

我们可以在Windows操作系统中使用Int13h(直接磁盘读/写)还是Windows保护模式不允许我们使用,如果可以,是否有工作轮次?提前致谢。 最佳答案 不,Windows子系统在引导期间初始化时会重新配置内核的BIOS中断处理,因为BIOS调用是16位的,而不是保护模式,因此int13h将无效。这就是为什么有些驱动程序是为完全绕过BIOS的32位保护模式编写的。这引出了一个问题-你为什么要这样做?Windows会在任何与BIOS通信的尝试中终止您的代码,就好像在说“嘿,你的代码,你作为Windows老板与我交谈,你不能绕过我,

windows - NASM 教程使用 int 80h,但这不适用于 Windows

我在完成FASM后开始使用NASMAssembler。我在Windows操作系统中对此进行编码。我的代码如下:section.data;Constantmsg:db"HelloWorld!"msg_L:equ$-msg;Current-msg1section.bss;Varialblesection.text;Codeglobal_WinMain@16_WinMain@16:moveax,4movebx,1;Wheretowrteitout.Terminalmovecx,msgmovedx,msg_Lint80hmoveax,1;EXITCOMMANDmovebx,0;NoErorin

c++ - 由于某种原因,我的 ram 上的 int 重量超过 32 位

好吧,我很好奇我的ram上的int是否真的占4个字节。所以我用这段代码做了1,000,000个整数。for(inti=0;i在我执行这行代码之前,我在前面放置了一个断点,以查看我开始时有多少headover。几乎没有头绪,我的程序从750kb开始。但在我完成循环后,如果一个int的重量为32位,程序本应为4,000kb,则该程序使用32,000kb。另一件值得一提的事情是,我正在使用ctrl+altk+delete方法来检查我的程序从ram中占用了多少空间,并且我在可视化上运行它C++2010表达。我也确信我电脑上的int是32位而不是64位,但这并不重要,因为即使它是64位而不是32

windows - 所有 Windows 版本都支持 Int64 吗?

如果我使用Int64类型的变量,它是否适用于所有Windows版本:win95、98、2000、nt、xp、vista、win7?无论是什么操作系统,它是32位还是64位?不管他们使用什么CPU?我只是想确定,我的程序可以在所有Windows版本上运行。 最佳答案 语言提供的数据类型的大小不受操作系统或硬件平台的限制。我可以在32位平台上使用64位整数(或者16位、8位或11位,就此而言)。 关于windows-所有Windows版本都支持Int64吗?,我们在StackOverflow