小编Tom*_*nen的帖子

我如何使用Python的DLL文件?

在Python中使用DLL文件最简单的方法是什么?

具体来说,如何在编写任何额外的包装C++代码来向Python公开功能的情况下完成这项工作?

与使用第三方库相比,本机Python功能更受欢迎.

python dll

176
推荐指数
5
解决办法
28万
查看次数

从正常的命令行使用Visual Studio的'cl'

Visual Studio 2003和2005(可能是我所知道的2008)需要命令行用户在"Visual Studio命令提示符"中运行.启动此命令提示符时,它会设置C++编译器cl在编译时使用的各种环境变量.

这并不总是令人满意的.例如,如果我想从Ant中运行'cl',我想避免在'Visual Studio命令提示符'中运行Ant.运行vcvars32.bat不是一个选项,因为vcvars32.bat设置的环境在运行cl时会丢失(如果从Ant中运行).

有没有一种简单的方法来运行cl而无需在Visual Studio命令提示符下运行?

command-line visual-studio

35
推荐指数
4
解决办法
6万
查看次数

如何在Python中使用ctypes卸载DLL?

我正在使用ctypes在Python中加载DLL.这非常有效.

现在我们希望能够在运行时重新加载该DLL.

直截了当的方法似乎是:1.卸载DLL 2.加载DLL

不幸的是我不确定卸载DLL的正确方法是什么.

_ctypes.FreeLibrary可用,但是私有.

有没有其他方法来卸载DLL?

python dll ctypes

19
推荐指数
3
解决办法
2万
查看次数

Running a program/script from QMake

我们有一个相当大的代码库.绝大多数代码是使用qmake编译来生成makefile的.但是,有一些子项目可以通过运行批处理文件或运行其他程序来生成.

我希望能够使用qmake编译所有内容,但我无法弄清楚如何让qmake简单地运行脚本.

我尝试过的一件事是在我的专业文件中使用QMAKE_EXTRA_TARGETS,如下所示:

TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target   = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS   = batch_runner
Run Code Online (Sandbox Code Playgroud)

然后我必须让批处理文件生成placeholder.cpp,如下所示:

# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.麻烦的是它有些笨拙.如果我没有指定batch_runner.target(即我将其留空)或者没有将placeholder.cpp放在SOURCES中,则批处理文件永远不会运行.这是因为qmake没有使batch_runner.commands成为Makefile中任何其他依赖项的操作.

有没有更好的方法让QMake构造一个Makefile,以便在Makefile执行时运行脚本?

qt qmake nmake makefile

16
推荐指数
3
解决办法
2万
查看次数

15
推荐指数
2
解决办法
5313
查看次数

如何向 VBA ListBox 添加水平滚动条

我想向 VBA ListBox 添加水平滚动条。

看来内置的ListBox不会自动添加水平滚动条。我有许多字段,其内容超出了列表框的宽度,因此用户无法读取。

我找到了这篇文章,但是由于访问 ListBox 的 hwnd(这在 VBA 中显然不可用),代码失败了。我宁愿不编写本机 DLL 来完成此任务,因为我怀疑有更好的方法。

关于如何向 VBA ListBox 添加水平滚动条的任何想法?

我愿意接受使用替代控件的想法,而不是让它专门与 ListBox 一起使用。

vba

5
推荐指数
2
解决办法
5万
查看次数

如何在Firefox Add On中获取*current*页面的SSL证书信息

我正在尝试开发一个Firefox扩展/附加组件,需要访问当前加载的页面的SSL证书信息.获得此信息后,我计划根据SSL信息修改页面内容.虽然,在我到达那里之前,我首先需要获取SSL信息.

此处概述的方法使用单独的XMLHTTPRequest来获取安全证书.如果我可以避免它,我宁愿不这样做,因为它会带来安全问题.

例如,恶意站点/中间人可以在页面的第一个请求(浏览器将验证)上提供一个证书,然后为我的扩展所做的XMLHTTPRequest提供另一个证书.这将导致扩展基于不一致的信息修改站点内容.因此,我想获取浏览器本身在验证网站时使用的SSL证书信息.

考虑到这一点,我将上述方法与在Firefox扩展更改HTTP响应中概述的方法相结合,通过添加"http-on-examine-response"事件的观察者来拦截所有HTTP响应.我认为通过这种方法,我可以简单地获取从网站下载的证书信息.

这是我的代码的内容,其中大部分来自上面的链接(其余的是Firefox扩展样板):

function dumpSecurityInfo(channel) {

    const Cc = Components.classes
    const Ci = Components.interfaces;

    // Do we have a valid channel argument?
    if (! channel instanceof  Ci.nsIChannel) {
        dump("No channel available\n");
        return;
    }

    var secInfo = channel.securityInfo;


    // Print general connection security state

    if (secInfo instanceof Ci.nsITransportSecurityInfo) {
        dump("name: " + channel.name + "\n");
        secInfo.QueryInterface(Ci.nsITransportSecurityInfo);

        dump("\tSecurity state: ");

        // Check security state flags
        if ((secInfo.securityState & Ci.nsIWebProgressListener.STATE_IS_SECURE) == Ci.nsIWebProgressListener.STATE_IS_SECURE)
            dump("secure\n");

        else if ((secInfo.securityState …
Run Code Online (Sandbox Code Playgroud)

javascript firefox firefox-addon firefox-5

5
推荐指数
1
解决办法
6243
查看次数

Jenkins没有等待Docker命令完成

我试图让Jenkins在一个Jenkins奴隶的docker中运行以下命令:

docker run -i -v `pwd`:/opt/myapp -w /opt/myapp -t mydockerimage /bin/bash -c "./setup_dev_env.sh && make all"
Run Code Online (Sandbox Code Playgroud)

麻烦的是,当我从Jenkins中运行它时,Docker进程被生成,但Jenkins不会等待它并立即返回成功.但是,如果我用无限循环替换Docker命令,Jenkins将按预期等待.

当我直接从构建从站运行此命令时,作为Jenkins用户,系统等待命令完成(这就是我想要发生的事情).

我已经尝试过了docker attach,但也会立即返回. docker wait将导致詹金斯等待它,但我不会看到任何输出.

也许我说这一切都错了......

  1. 我怎样才能让詹金斯等待这个命令完成?
  2. 如何让Jenkins显示在docker容器中运行的命令的输出?
  3. 如何设置在Docker中运行的命令的退出代码,以便Jenkins可以确定它是成功还是失败?

jenkins docker

5
推荐指数
1
解决办法
3619
查看次数

为什么Python argparse中的fromfile-prefix-chars不起作用?

我试图在Python中使用argparse的fromfile-prefix-chars功能从文件加载我的所有命令行参数,但它一直在抱怨我没有指定一些参数.

代码:

import argparse

def go():
   parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
   parser.add_argument("--option1")
   parser.add_argument("--option2", type=int, required=True)
   args = parser.parse_args()

if __name__ == "__main__":
    go()
Run Code Online (Sandbox Code Playgroud)

参数文件:

--option1 foo
--option2 1234
Run Code Online (Sandbox Code Playgroud)

命令行和输出:

$ python testargparse.py @testargs
usage: testargparse.py [-h] [--option1 OPTION1] --option2 OPTION2
testargparse.py: error: argument --option2 is required
Run Code Online (Sandbox Code Playgroud)

你可以看到我在文件中提供了必需的参数,但是argparse没有看到它.

python python-2.7 argparse

4
推荐指数
2
解决办法
2237
查看次数