小编Tam*_*lei的帖子

Firefox扩展:本机代码执行?

是否可以编写一个运行本机,平台相关代码的扩展?我是一个扩展新手(什么短语!):),请你指点我这个主题的好材料?(向Google提供的好关键字就足够了)

(我想在Firefox中放一个GtkMenu)

编辑:我开始查看Gecko SDK,这是一个相当大的主题,我不确定这是我想要的.

我很满意一本友好的手册(这不是一个原始参考,而是一些关于如何使用XPCOM进行扩展的教程(如果是这样的话).好的关键词仍然很受欢迎.

native firefox-addon

6
推荐指数
1
解决办法
3899
查看次数

如何在运行时询问用户提升权限?

某些应用程序(以常规用户启动)将在必要时请求提升权限(例如,文件管理器需要编写此类文件夹),然后继续执行操作.

我该如何复制这种行为?

c++ windows qt

6
推荐指数
1
解决办法
8546
查看次数

识别WCF服务中的客户端

我有一个工作的双工WCF服务WSDualHttpBinding.我的问题是找出一种方法来存储具有唯一ID的回调通道.该服务旨在长期运行.我可以简单地在OperationContext.Current.GetCallbackChannel()调用"Subscribe"方法时获取返回值并将其存储在列表或字典中吗?在连接存活之前,它是否保证有效?

service wcf duplex

6
推荐指数
1
解决办法
1991
查看次数

混合部分模板特化和默认模板参数

我想创建一个通用的矢量类,并为少数情况创建特化.像这样的东西(它不编译,但希望传达我的意图):

template<int dim, typename T = float>
class Vector
{
public:
    typedef Vector<dim, T> VecType;

    Vector() { /**/ }
    Vector(const VecType& other) { /**/ )
    Vector& operator=(const VecType& other) { /**/ }

    VecType operator+(const VecType& other) { /**/ }    
    VecType operator-(const VecType& other) { /**/ }    
    T operator*(const VecType& other) { /**/ }

private:
    std::array<T, dim> elements;
};

template<int dim, typename T>
class Vector<2>
{
public:
    T x() const { return elements[0]; }
    T y() const { return elements[1]; } …
Run Code Online (Sandbox Code Playgroud)

c++ templates template-specialization c++11

6
推荐指数
1
解决办法
5458
查看次数

如何将字符串从DLL返回到Inno Setup?

我需要将一个字符串值返回给调用inno安装脚本.问题是我找不到管理分配内存的方法.如果我在DLL端分配,我没有任何东西可以在脚本端解除分配.我不能使用输出参数,因为Pascal脚本中也没有分配函数.我该怎么办?

c++ dll inno-setup pascalscript

6
推荐指数
1
解决办法
4259
查看次数

g ++实现如何处理这种情况?

这是对此问题的后续问题.

考虑这个例子:

#include <iostream>

class A
{
};

class B : public A
{
    public:
    int i;
    virtual void Func() = 0;
};

class C : public B
{
    public:
    char c;
    void Func() {}
};

int main()
{
    C* pC = new C;
    A* pA = (A*)pC;
    std::cout << "pC == " << std::hex << pC << "\n";
    std::cout << "pA == " << std::hex << pA << "\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用Visual Studio 2010,输出(在我的机器上):

pC == …

c++ gcc visual-c++

6
推荐指数
1
解决办法
259
查看次数

Qt 5应用程序的平面目录部署?

我正在部署一个Qt 5应用程序,编译到windows.事实证明,某些功能存储在插件中,这些插件是必须放在特定子目录中的DLL,迫使我使用这种结构:

applicaton directory
         |
         +------- platforms
         |           |
         +           +-------- qwindows.dll
         |
         +------- qpldrivers
         |           |
         |           +-------- qsqlite.dll
         | 
         +------- myprogram.exe, QtCore5.dll, etc.

我想展平这个目录,以便qwindows.dll和qsqlite.dll(以及任何其他未来的插件)存储在与我的可执行文件相同的目录中.

applicaton directory
         |
         +------- myprogram.exe, QtCore5.dll, qwindows.dll, qsqlite.dll, etc.

有没有办法做到这一点?

c++ deployment qt qt5

6
推荐指数
1
解决办法
169
查看次数

如何阻止clang格式在=标志后打破?

我正在使用clang-format和一个相当小的配置文件,我对这些选项并不是很熟悉.为了这个问题,请考虑这段未格式化的代码:

int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)

当我在这个片段上运行clang-format时,我明白了

int msgResult
    = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)

但我更喜欢

int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, 
                         MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)

有没有办法强制执行不破坏=,或者至少不愿意破坏?

c++ clang-format

6
推荐指数
1
解决办法
102
查看次数

如何在测试结束后告诉GoogleMock停止检查期望?

我有两个单元测试共享一些状态(不幸的是我不能改变这个,因为重点是测试处理这个状态).

TEST(MySuite, test1)
{
    shared_ptr<MockObject> first(make_shared<MockObject>());
    SubscribeToFooCallsGlobal(first);
    EXPECT_CALL(*first, Foo(_));//.RetiresOnSaturation();
    TriggerFooCalls(); // will call Foo in all subscribed
}

TEST(MySuite, test2)
{
    shared_ptr<MockObject> second(make_shared<MockObject>());
    SubscribeToFooCallsGlobal(second);
    EXPECT_CALL(*second, Foo(_)).Times(1);
    TriggerFooCalls(); // will call Foo in all subscribed
}
Run Code Online (Sandbox Code Playgroud)

如果我单独运行测试,两者都是成功的.如果我在test1,test2的命令中运行它们,我将在test2中收到以下错误:

mytest.cpp(42): error: Mock function called more times than expected - returning directly.
    Function call: Foo(0068F65C)
         Expected: to be called once
           Actual: called twice - over-saturated and active

失败的期望是test1中的期望.电话确实发生了,但我想告诉GoogleMock 完成后不关心test1(事实上​​,我只想在测试运行时检查测试中的期望).

我的印象是RetiresOnSaturation会这样做,但有了它,我得到:

Unexpected mock function call - returning directly. …

c++ unit-testing googletest googlemock

6
推荐指数
1
解决办法
9505
查看次数

constexpr是否有标准保证的初始化程序?'constexpr(constexpr auto x = f(); x){}'

如果初始化语法和'constexpr if'中有以下内容,我找不到有关新C++ 17的任何信息:

http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0128r1.html

然而,Clang-HEAD支持语法...

constexpr auto f() { return true; }
int main() {
    if constexpr(constexpr auto x = f(); x) { }
}
Run Code Online (Sandbox Code Playgroud)

在线代码 - > http://melpon.org/wandbox/permlink/dj3a9ChvjhlNc8nr

是否constexpr if有标准保证的初始化程序,因为constexpr if它只是一个" ifconstexpr"或者它不能保证并且必须明确地添加到标准中?

c++ clang constexpr c++17

6
推荐指数
1
解决办法
230
查看次数