很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我有unix背景,但我被要求做一些windows编程,我在理解框架方面遇到了困难。win32、mfc、.NET等之间的一般层次结构是什么。是否有关于Windows编程的一般结构的不错的在线教程。我不确定我应该搜索什么。
我有哪些选项可以在Windows上存储信息?我正在考虑创建一个文件或使用注册表,但如果文件太大并且注册表太容易被用户访问,那么处理该文件可能会很烦人。我不希望最多有100个条目,它们看起来像这样。约翰香蕉马库斯·苹果等等我意识到这不会产生太大的文件,但我不想每次需要信息时都解析它。我正在考虑在启动时将信息读入应用程序,但这不会造成性能问题吗?或者也许它太小了,除了旧计算机外无关紧要?还有其他选择吗?也许我可以加密信息并将其放入注册表中?注册表是否适合放置多个这样的条目?请注意,当我编程时,在提高效率方面有时会有点过火。请原谅我的无知。 最佳答案
在C++WinAPI应用程序中,我使用此代码打开文件CreateFileW(path,FILE_APPEND_DATA,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);当此C++应用程序打开该文件时,我正尝试使用此代码在C#应用程序中打开它以供阅读varf=newStreamReader(path);我收到IOException“该进程无法访问该文件,因为它正被另一个进程使用”我试过了varfs=newFileStream(path,FileMode.Open,FileAccess.Read)同样的结果。我不明白
我正在开发一个基于插件架构的程序。所有插件都是DLL,其中一些可以依赖于其他插件DLL。我希望能够执行以下操作:在程序启动时,扫描插件文件夹。对于找到的每个插件,检查该插件是否已经加载。(这可能是,如果以前加载的插件导致它作为依赖项加载)。如果没有,加载它。第一步和第三步很简单,但是我该怎么做第二步呢?是否有一个winapi调用,给定一个DLL的文件名,会告诉我该DLL当前是否已加载到当前进程中?(或者可能需要一个文件名和一个进程句柄?)拜托,没有回答说“无论如何都要加载它。”我知道那会奏效。我正在努力避免这种情况。 最佳答案 Ge
有没有一种方法可以执行progid动词的命令,而无需深入研究注册表并进行字符串操作?我可以使用ShObjIdl.idl运行以下命令来获取默认浏览器的ProgId:varreg=newShellObjects.ApplicationAssociationRegistration();stringprogID;reg.QueryCurrentDefault("http",ShellObjects.ASSOCIATIONTYPE.AT_URLPROTOCOL,ShellObjects.ASSOCIATIONLEVEL.AL_EFFECTIVE,outprogID);这给了我“ChromeHT
知道为什么会这样吗?该方法对于当前进程完美运行,对于在同一台本地计算机上运行的远程进程失败,对我来说是垃圾错误代码2147483661(0x80000000D),因为在任何地方都没有关于这个特定错误代码的提示,或者我错过了什么?.另外,我觉得;因为SymInitialize本身失败了,SymFromAddr也是如此。我说得对吗?有问题的进程以管理员身份运行,并且具有SeDebug和SeSecurity权限。boolDbgHelpWrapper::MatchTargetSymbol(IntPtrprocessHandle,intprocId,intthreadId){DWORDdwSta
我正在编写一些需要在连接到坞站的移动设备上表现不同的软件。因此,我需要一种编程方式来检查计算机是否已连接到C#/.NET中的坞站。我尝试了以下方法:P/调用GetCurrentHwProfile功能。P/调用CM_Is_Dock_Station_Present功能。在WMI的Win32_SystemEnclosure中寻找扩展坞机箱类型.不幸的是,这些似乎都不适用于“一刀切”的情况。它们适用于我的一些测试设备,但不适用于其他设备。我需要在各种设备和扩展坞上运行。是否有任何一致、可靠的方法来检查设备是否已插接在Windows中? 最佳答案
我需要使用无法修改的遗留库处理一些数据。我的问题是它需要一个普通的旧FILE句柄来保存它的结果,而且我被要求根本不要在磁盘上写任何东西。我知道没有标准的方法可以做到这一点,但是是否有可能使用WindowsAPI、boost或其他任何方法来获取指向内存的文件句柄?我在任何地方都找不到明确保证不(系统地)执行任何磁盘访问的解决方案。 最佳答案 我相信你可以fopen一个管道,使用管道语法:fopen("\\\\.\\pipe\\WritePipe","w+");您需要事先使用CreateNamedPipe创建管道,但是一旦完成,您应该能
我是Windows编程的新手,主要完成Java(JavaSE、JavaME、Android、JavaEE),所以要详细而温和。我想捕获“在窗口中单击的文件/路径的名称,就像单击桌面上的文件一样”?进一步研究http://www.codeproject.com/Articles/6362/Global-System-Hooks-in-NET,这是一个使用全局系统Hook的小型c#/c++不错的应用程序,用于捕获坐标、点击等鼠标事件。那么捕获文件图标事件的正确API或全局系统Hook是什么? 最佳答案 没有单一的API可以提供该级别的详
我有两个程序读取和写入同一个文件。一个附加数据,另一个清除文件,然后重写所有数据。这两个程序在同一台计算机上交互良好,但是当我在另一台计算机上运行一个程序并通过我的本地网络打开文件时,我的追加似乎没有及时完成。我的流程如下:程序1:用打开文件handle=CreateFile(str.c_str(),FILE_READ_DATA|FILE_APPEND_DATA,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);写入数据使用:WriteFile(handle,line,strlen(line),&Written,NULL);关闭文件使用:Cl