Articles of Windows

在Windows上使用Python的libarchive

我试图让窗口上的Python 3.4的libarchive模块工作。 我用pip安装了libarchive -c,一切正常,但每当我尝试将其导入到我的代码中,或者甚至单独运行它,我都会收到错误: OSError: [WinError 126] The specified module could not be found 这是从下面的代码ffi.py: libarchive_path = os.environ.get('LIBARCHIVE') or find_library('archive') libarchive = ctypes.cdll.LoadLibrary(libarchive_path) 我从来没有使用ctypes之前,但如果我理解正确,它正在寻找外部DLL。 所以find并安装http://gnuwin32.sourceforge.net/packages/libarchive.htm我也添加了C:\ Program Files(x86)\ GnuWin32 \ bin到我的%PATH%环境variables,但它仍然无法加载模块。 因为它不给我的名字,我不知道它正在寻找什么模块。 我错过了什么?

如何正常closures由于closures执行命令行而终止​​的Java应用程序?

关于正常closuresJava命令行程序的最佳途径有一个回答的问题。 当一个程序被Ctrl + C终止的时候,一个closures钩子完成了这个工作。 我的问题是,如果命令行本身在Java程序执行过程中被closures,该如何正常退出? 我用shutdown hook进行了testing,但在这种情况下不起作用。 在这种情况下,我找不到虚拟机会发生什么情况。 这个进程及其所有线程立即死亡? closures命令行产生什么样的信号? 那么,这个问题怎么解决呢? 编辑:问题涉及Windows环境。

如何模仿静态库中的“应用程序内的全局variables的多个实例”行为,但使用DLL?

我们有一个用C / C ++编写的应用程序,它被分解成一个EXE和多个DLL。 这些DLL中的每一个都使用相同的静态库( utilities.lib )。 实用程序静态库中的任何全局variables实际上在应用程序的运行时都会有多个实例。 每个模块的全局variables(即DLL或EXE)将有一个utility.lib链接到的副本。 (这是众所周知的,但是值得深入探讨静态库在DLL上下文中的行为。 现在我的问题..我们要改变utilities.lib ,使它成为一个DLL。 它变得非常庞大和复杂,我们希望以DLLforms而不是.libforms分发它。 问题是,对于这个应用程序,我们希望保留当前的行为,即每个应用程序DLL都拥有公用程序库中全局variables的副本。 你怎么去做这个? 其实我们并不需要所有的全局variables,只有一些; 但是,如果我们能够得到它,那也无所谓。 我们的想法: 在我们关心的库中没有太多的全局variables,我们可以用一个访问器来包装每个variables,这个访问器会尝试找出哪个DLL正在调用它。 据推测,我们可以走上调用堆栈,并找出每个函数的HMODULE ,直到find一个不是utilities.dll 。 然后我们可以根据调用的DLL返回不同的版本。 在调用utilities.dll任何函数之前,我们可以要求调用者设置一个特定的全局variables(也可能是线程本地的)。 实用程序DLL然后可以使用此全局variables值来确定调用上下文。 我们可以find一些在运行时多次加载utilities.dll方法。 也许我们需要在构build时创build多个重命名的副本,以便每个应用程序DLL可以拥有它自己的实用程序DLL副本。 这首先否定了使用DLL的一些优点,但也有其他应用程序不需要这种“静态库”风格的行为,哪些仍然将受益于utilities.lib成为utilities.dll 。

FFMPEG – 批量转换子文件夹

我正在尝试设置一个Windowsbatch file来使用FFMPEG转换一些MP4文件。 在多个子文件夹中有许多文件,因此我需要在每个子文件夹中的每个文件上执行该脚本。 恐怕我没有太多使用batch file的经验,但从我的研究中,我得到了以下命令文本: FOR %%i in (*.mp4) /R DO (ffmpeg32 -i "%%~ni.mp4" -map 0:0 -map 0:1 -map 0:1 -c:v copy -c:a:0 aac -b:a 128k -ac 2 -strict -2 -cutoff 15000 -c:a:1 copy "%~ni&(2).mp4") 该脚本基本上需要将AACaudiostream添加到现有的MP4文件,因此我需要通过在文件名末尾添加(2)来更改输出名称。 我已经单独testing了ffmpeg命令,所以很高兴,它只是需要得到正确的批处理命令。 提前感谢任何指针! 干杯

在新的浏览器进程中打开一个URL

我需要在新的浏览器进程中打开一个URL。 当浏览器进程退出时,我需要得到通知。 我目前使用的代码如下: Process browser = new Process(); browser.EnableRaisingEvents = true; browser.StartInfo.Arguments = url; browser.StartInfo.FileName = "iexplore"; browser.Exited += new EventHandler(browser_Exited); browser.Start(); 显然,这不会因为“FileName”被固定为iexplore,而不是用户的默认Web浏览器。 如何找出用户的默认网页浏览器是什么? 我正在运行Vista->前进。 尽pipe如果可能的话,XP会很好的支持。 更多的上下文:我创build了一个非常小的独立的Web服务器,从本地磁盘提供一些文件。 在启动服务器的最后,我想启动浏览器。 一旦用户完成并closures浏览器,我想退出Web服务器。 上面的代码完美的工作,除了只使用IE浏览器。 提前致谢!

过滤驱动程序是否打算扩展系统驱动程序

过滤驱动程序是否打算扩展系统驱动程序 这是他们的主要目的吗? 他们基本上只是一个位于驾驶员和用户之间的额外层? 这似乎过于简单的解释,我想知道如果我失去了一些东西。 有没有好的方法来学习更多?

Windows有一个__declspec相当于Unix GCC的__attribute __((弱))?

我想导入一些C代码,但是重写它的main()函数。 我可以在Unix下用__attribute__((weak))预处理C代码的主要声明,但是这不会在Windows中编译,因为Strawberry Perl的GCC和MinGW的GCC都不能识别__attribute__((weak)) 。 在线阅读文档, __declspec似乎function相似。 是否有一个相当于Unix GCC的__attribute__((weak))macros的__declspec ? 这是我发布的早期问题的更具体的版本。

有没有C ++function来closures电脑?

有没有C ++function来closures电脑? 而且由于我怀疑有一个(至less在标准库中),我可以从C ++调用的窗口函数是什么? 基本上,什么是在c + +closuresWindows XP计算机的代码?

在Windows上使用OpenCV与Clion IDE

实际上,我正在寻找一种方法,使用JetBrains中的Clion创buildOpenCV应用程序。 我已经用Choco安装了OpenCV,所以我拥有C:\ opencv中的所有东西 这是我与Clion的预测 的CMakeLists.txt: cmake_minimum_required(VERSION 3.3) project(test) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") include_directories("C:\\opencv\\build\\include\\") FIND_PACKAGE( OpenCV REQUIRED core highgui imgproc) set(OpenCV_FOUND TRUE) set(SOURCE_FILES main.cpp) add_executable(prog ${SOURCE_FILES}) 和main.cpp: #include <opencv2/opencv.hpp> int main() { cv::Mat img = cv::imread("./test.jpg", -1); cv::imshow("Mon image", img); cv::waitKey(0); return 0; } 而构build的响应是: undefined reference to `cv::imread(cv::String const&, int)' 以及所有OpenCV函数的未定义错误 你知道为什么它不起作用吗?

使用np.zeros时Windows上的MemoryError,而不是MacOS

我想build立一个numpy数组,但我得到有16 GB RAM的窗口中的MemoryError。 详细资料如下: Python 2.7.13 |Anaconda custom (64-bit)| (default, May 11 2017, 13:17:26) [MSCv.1500 64 bit (AMD64)] on win32 xx = np.zeros((110000,80000,3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> MemoryError 但是,完全相同的代码在8 GB RAM的Mac电脑上运行。 细节是: Python 2.7.12 |Anaconda 4.2.0 (x86_64) [GCC 4.2.1 (LLVM build … )on darwin)] xx = np.zeros((1100000,8000000,3)) doesn't […]