草庐IT

c++ - 在系统上的何处安装 SDK DLL,以便需要它们的应用程序可以找到它们

我有一个正在开发的SDK,之前的开发人员刚刚在System32中删除了DLL(显然是严重的违规行为:seehere)假设我将它们移出到\ProgramFiles\\SDK(或其他),我如何确保所有需要这些DLL的应用程序都可以访问它们?需要澄清的是,所有访问这些的应用程序都在编译时对DLL进行早期(静态)绑定(bind),因此我无法将完整路径传递给它们或任何东西。他们需要能够在仅给出DLL文件名的情况下找到它。按照同样的思路,包含特定版本的MSVCR80.dll怎么样?他们都依赖于此,但我需要确保他们获得特定版本(我包括的版本)。有什么想法吗? 最佳答案

python - 如何找到根目录,以便一条路径跨多台计算机工作?

我正在编写一个程序来设置我用来存储数据的文件路径。格式如下c://users/username/.../endingpath当我切换计算机时,用户名会更改。有没有一种方法或方法可以指定我正在使用的特定计算机的用户名?或者是否有更好的方法使路径计算机独立?我在Windows7上运行Python2.7 最佳答案 在Windows下,您可以查看几个预定义的环境变量。其中之一是USERNAME。所以:importosuser_name=os.getenv("USERNAME")Windows还为某些目录定义了环境变量。如果您的文件应存储在用

c# - 如何确保该进程仍在运行以便我可以杀死它?

我有一个进程,我想杀死;然而,有时这会产生InvalidOperationException,表示进程已经退出。为了防止异常,我尝试检查进程是否退出:if(!p.HasExited){p.Kill();}但是,我仍然偶尔会看到异常。由于该进程与我的代码并行运行,我假设问题本质上可能是竞争条件,即进程在检查和Kill()调用之间终止。在不引发上述异常的情况下终止进程的正确方法是什么?当然,我可以trycatch有问题的代码,但这似乎不是解决此问题的最佳方法。 最佳答案 你无法解决这个问题,因为有一个内置的竞争条件:当你调用p.HasE

windows - 我的 winform 应用程序使用 xml 文件来存储数据,我应该将它们存储在哪里以便 Vista 用户可以写入它们?

我的winform应用程序使用xml文件来存储数据,我应该将它们存储在哪里以便Vista用户可以写入它们?谢谢 最佳答案 使用Environment.GetFolderPath以独立于操作系统的方式获取最合适的文件夹。特别是,您需要以下SpecialFolder值之一:ApplicationData-如果文件是漫游的,每个用户,并且仅供应用程序使用,不代表用户可能关心的文件。LocalApplicationData-如果文件是非漫游的、针对每个用户的并且仅供应用程序使用并且不代表用户可能关心的文件。CommonApplication

python - 关闭文件以便我可以在 Windows 上用 Python 删除它?

假设您有一个python模块black_box,您将其导入到python脚本中。您向此模块black_box传递一个文件路径,如下所示:importblack_boximportosfile_path=r"C:\foo.txt"black_box.do_something(file_path)os.remove(file_path)有时black_box模块会打开该文件并使其保持打开状态,但我需要删除black_box已打开的文件。我在Windows上收到一条错误消息:WindowsError:[Error32]Theprocesscannotaccessthefilebecausei

windows - 找出模式以便在编译的程序中找到变量

我需要从已编译的C程序中提取全局变量。我现在正在做的是使用Linuxreadelf命令来获取该信息。换句话说,当我这样做时:readelf.exe-w[i]myFile.out我使用readelf.exe来做到这一点可以从here下载的程序.因为我使用的是Windows,这是我唯一需要的命令。在Linux上,我将只打开控制台并执行readelf-w[i]myFile.out无论如何,当我执行该命令时,我会得到如下信息::AbbrevNumber:2(DW_TAG_base_type)DW_AT_name:unsignedintDW_AT_encoding:7(unsigned)DW_A

python - 在 Windows 上优雅地终止子 Python 进程,以便 Finally 子句运行

在Windows机器上,我有许多父进程将启动子进程的场景。出于各种原因-父进程可能想要中止子进程但是(这很重要)允许它清理-即运行finally子句:try:res=bookResource()doStuff(res)finally:cleanupResource(res)(这些东西可能嵌入在更近的上下文中-通常围绕硬件锁定/数据库状态)问题是我找不到在Windows中向子进程发出信号的方法(就像在Linux环境中那样),因此它会在终止前运行清理。我认为这需要让子进程以某种方式引发异常(就像Ctrl-C那样)。我尝试过的事情:操作系统杀操作系统信号subprocess.Popen带有c

windows - InnoSetup - 如何将 setup.exe 变成 875kB?以便用户更快地下载它并且在下载时它会下载另一个?

使用InnoSetup我准备了我的maininstaller.exe它非常大,例如90Mb当用户下载它时,有时需要很长时间。因此,用户经常忽略它,而且我的设置不完整,因为对用户不友好。现在我已经比较了GoogleChrome/Canary网络浏览器概念,它们的体积也很大,但是它们使用了两种类型的安装程序,一种是非常小的安装程序,只是为了快速下载并执行,下载第二个大型主安装程序,这种方式对部署大型安装比较友好,也被很多用户接受。现在,我如何使用Innosetup执行此操作(如GoogleChrome网络浏览器安装程序)?一个first_setup.exe,它非常小,所以用户可以快速下载它

windows - 如何从服务器正确识别 IE10 Metro 和 IE10 Desktop 以便发回 "finger friendly"或 "mouse friendly"接口(interface)?

我读到,由于两者之间的用户代理相同,推荐的方法是使用特征检测。这在某些情况下很好,您可能想要显示Flash视频/电影/应用程序而不是javascript幻灯片,但我的问题是根据用户的输入设备显示正确的界面。我的假设是,如果用户在“Metro”IE10中,他们可能希望使用手指而不是鼠标。既然如此,我想给他们一个带有大点击框的界面。我的问题:有没有办法区分并显示适当的界面?还是我坚持让用户通过我网站上设置cookie的链接手动切换模式? 最佳答案 仍然没有办法从残缺的MetroIE中检测到正常的IE,但你知道你可以在服务器上知道用户是否

windows - 我是否需要编码 CreateStreamOnHGlobal 返回的 IStream,以便跨线程使用?

我有一个COM流对象(IStream),是用CreateStreamOnHGlobal创建的.我想在同一进程的不同线程中使用它。我是否需要编码流对象本身(使用CoMarshalInterface等)?或者它已经是线程安全的了?已编辑,读/写/查找与我的代码中的锁正确同步。 最佳答案 COM将IStream视为一种特殊类型的接口(interface),可以安全地跨线程使用。这是必要的,以便可以使用CoMarshalInterThreadInterfaceInStream在IStream中跨线程边界编码其他接口(interface)。.