小编loo*_*oop的帖子

Win32安装程序:有没有办法为每个用户写入HKU启动?

是否有Windows安装程序将为每个用户添加启动,例如
<user>\Software\Microsoft\Windows\CurrentVersion\Run
系统中的每个用户?我无法写入HKLM,因为正在安装的程序是硬编码的,可以HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run在切换登录开始首选项时使用.

我也想知道如何处理安装应用程序后创建用户的情况.有没有可以将密钥放在默认注册表配置文件中的地方?

你也用什么安装程序?NSIS?Inno设置?高级安装程序?

谢谢

inno-setup nsis advanced-installer

2
推荐指数
1
解决办法
818
查看次数

如何获得静态数组的长度?

如果我有一个静态标签数组:

Labels: array [0..6] of TLabel;
Run Code Online (Sandbox Code Playgroud)

如何获取程序中的标签数量?

此外,如果有人可以告诉我更多关于Pascal Inno安装程序使用的类型,或者是否有一些手册.例如,我不能对数组执行High().

arrays inno-setup

2
推荐指数
1
解决办法
1474
查看次数

批处理文件嵌套setlocal - 仅设置一次可选参数

我有一个包含一些功能的批处理文件.每个函数都使用setlocal它的变量不会污染主批处理脚本.我注意到我ENABLEDELAYEDEXPANSION在主批处理脚本中第一次只需要参数,而不是每个嵌套的setlocal.例如:

@echo off
setlocal ENABLEDELAYEDEXPANSION

set VAR=hi
CALL :function

echo bye
exit /b 0

:function
setlocal
echo !VAR!
exit /b 0
Run Code Online (Sandbox Code Playgroud)

这是否允许在批处理文件中,因为除非如下所述,否则我无法找到它.这setlocal对于为每个函数编写而不是指定其他参数来说肯定要容易得多.

setlocal /? 关于ENABLEDELAYEDEXPANSION说这个:

这些修改将持续到匹配的ENDLOCAL命令,无论它们在SETLOCAL命令之前的设置如何.

所以也许这意味着即使与另一个setlocal设置保持不变?

windows batch-file

2
推荐指数
1
解决办法
1742
查看次数

C++ - 在另一个类中实例化对象时,调用默认值以外的构造函数

随意编辑标题我不知道怎么说这个.

我试图弄清楚如何在另一个类中实例化时调用类的构造函数而不是默认构造函数.我的意思是这......

class A
{
public:
    A(){cout << "i get this default constructor when I create a B" << endl;}
    A(int i){cout << "this is the constructor i want when I create a B" << endl;}
};

class B
{
    A a;
};

int main()
{
    B *ptr = new B;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,但我没有办法做我想做的事.我想也许在B的声明中我可以这样做,A a(5)但那不起作用.

谢谢

c++ constructor class

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

更快地交换或分配字符串向量?

我有一个带有字符串向量的类和一个赋值给该向量的函数.我正在将我的功能更改为仅在向量成功时分配给向量.为此,我在函数中使用临时的字符串向量,然后如果函数成功,我将分配给类中的字符串向量.

例如:

class test
{
    vector<string> v;
    void Function()
    {
        vector<string> temp;
        v = temp; // Is this better?
        v.swap( temp ); // Or instead is this better?
    }
};
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ string swap vector

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

将一个stringstream附加到另一个.什么是最安全的?

以下是有什么区别的

stringstream a;
stringstream b;
a << "hi";
b << "there";
Run Code Online (Sandbox Code Playgroud)

a << " " << b.rdbuf();a << " " << b.str();a << " " << b.str().c_str();


我一直在使用rdbuf().我注意到C++ Reference对stringstream :: rdbuf说:

请注意,对于任何成功构造的istringstream对象,即使缓冲区字符串为空,此指针也永远不会为NULL.

我认为这意味着rdbuf()不会返回NULL?我无法传递NULL.我有这样的错误char *array = NULL; a << array;.如果stringstream b为空,那么在执行时a << b.rdbuf() << "some text"是否定义了行为?在这种情况下,rdbuf返回的第一个字符是否具有eof特征,因此b中不会附加任何内容?

谢谢

c++ stringstream

0
推荐指数
1
解决办法
569
查看次数

c ++异常裸抛

可能重复:
使用arg捕获的异常抛出和抛出有什么区别?
catch(...)是否可以投掷; 没有对象?

这会崩溃:

try
{
    if(1)
        throw;
}
catch(...)
{
    printf("hi");
}
Run Code Online (Sandbox Code Playgroud)

我以为我能做到,但我猜不是.当您不需要任何信息时,正确的投掷方式是什么?

c++ windows exception try-catch visual-c++

0
推荐指数
1
解决办法
359
查看次数

C++当类型T需要构造函数时,是否可以创建类型为T的std :: list?

例如:

class apple
{
public:
    string name;

    apple::apple(string name) : name(name)
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

如果我想制作一堆每个都有苹果类型的列表,我想我可以做类似的事情std::list<apple> empire("empire"), macintosh("macintosh").基本上我想为list<T>我创建列表时声明的类T的构造函数传递参数.对不起,如果我没有解释这个问题,如果你有这种能力,请随时编辑我的问题.

谢谢

编辑这个问题似乎令人困惑,这可能是因为我给出了一个糟糕的例子.我需要重新设计我的课程.按照这个例子,虽然我想要的是一个列表,它都是帝国苹果,该列表中的每个苹果都有一个指定类型的帝国,一个列表都是macintosh苹果,该列表中的每个苹果都有一个指定类型的macintosh.

因此,为了澄清一些或在此处混淆一些我们去.

class apple
{
public:
    string variety_name;
    string description;
    apple::apple(string variety_name, string description)
        : variety_name(variety_name), description(description)
    {
    }
};
int _tmain(int argc, _TCHAR* argv[])
{
    // Vlad from Moscow's answer
    std::list<apple> empire(1, apple("empire", "picked yesterday")),
        macintosh(1, apple( "macintosh", "picked yesterday")); 

    // Vaughn Cato's answer
    empire.push_back(apple("empire", "picked today"));
    macintosh.push_back(apple("macintosh", "picked today"));

    for(list<apple>::iterator it=empire.begin(); it != empire.end(); ++it) …
Run Code Online (Sandbox Code Playgroud)

c++ stl std stdlist

0
推荐指数
1
解决办法
493
查看次数

C++ istream EOF 不保证failbit?

我在 Stack Overflow 上阅读了一个问题,其中file设置了 istream 的 eofbit但未设置 failbit。在这种情况下,file 为真,file.eof() 为真,但 file.good() 为假。例如,文件大小正好是一个字节:

ifstream file("one.txt");
assert( file.is_open() );
for( int i = 0; i < 2; ++i )
{
    char chars[255] = {0};
    file.getline(chars, 2);
    //file.read( chars, 2 );

    cout << "file: " << !!file << endl;
    cout << "good: " << file.good() << endl;
    cout << "eof: " << file.eof() << endl;
    cout << "fail: " << file.fail() << endl;
    cout << "bad: " << file.bad() …
Run Code Online (Sandbox Code Playgroud)

c++ eof

0
推荐指数
1
解决办法
739
查看次数

C++ 使用枚举进行标志和按位运算,很容易

在 CI 中能够采用两个或多个枚举标志并包含或它们: (flag1 | flag2)

在 C++ 中,我不能做同样的事情。我有一些标志,我已将其范围限定在我的班级,但我必须对它们进行 OR 转换。它看起来像这样:

namespace name
{
    class test
    {
    public:
        enum flag
        {
            firstflag = 1, secondflag = 2, thirdflag = 4
        };

        void foo(flag flags)
        {
            return;
        }
    };
}

int main(int argc, char *argv[])
{
    name::test obj;

    obj.foo((name::test::flag)(name::test::firstflag | name::test::secondflag));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在实际代码中,这比这个例子要多。我想知道是否有更好的方法。我可以更改传递给 int 的参数,void foo(int flags)但是在 Visual Studio 2010 调试器中,我看不到 ORed 标志,只有一个数字。


没有演员我得到一个错误:

obj.foo(name::test::firstflag | name::test::secondflag);
error C2664: 'name::test::foo' : cannot convert parameter 1 from 'int' …
Run Code Online (Sandbox Code Playgroud)

c++ enums visual-studio-2010

0
推荐指数
1
解决办法
340
查看次数

C++ 将无符号整数转换为有符号整数可移植性

我知道在 C 中,无符号整数到有符号整数的转换是实现定义的,但是对于 C++ 来说它是什么?我想已经有人问过这个问题了,我搜索了一下,但没有找到。

我有一个对无符号整数进行操作并返回相关无符号整数的函数。我通过转换为类似于 的无符号整数来向该函数传递一个有符号整数int num = -6; unsigned ret = func((unsigned)num); int ret_as_signed = (int)ret;。在 Visual Studio 中工作正常,但我想知道它的可移植性如何。

是否有一种可移植的方法将无符号整数转换为有符号整数?是否可以通过环绕反转有符号整数如何转换为无符号整数?谢谢

c++ standards signed

0
推荐指数
2
解决办法
1782
查看次数

perl 二进制标准输入多行正则表达式

我试图在多行上匹配一个模式。我想确保我正在寻找的行以 \r\n 结尾,并且在某个时刻后面有特定的文本。我已经在 grep 中尝试过,但是如果没有某些版本没有的 -P 开关,它就无法工作。所以现在我正在尝试使用 perl。

我不明白为什么这不起作用:

echo -e -n "ab\r\ncd" | perl -w -e $'binmode STDIN;undef $/;$_ = <>;if(/ab\r\ncd/){print "test"}'
Run Code Online (Sandbox Code Playgroud)

我在全局 ( undef $/;) 中启用了 slurp 模式,这很草率但对此很好(我当然会采取任何更好的想法)。如果我只是执行 aprint并将其通过管道传输到od我可以看到 $_ 保存正确的字节。正则表达式应该匹配那些相同的字节,但由于某种原因不起作用。我可以匹配 ab\r 但不能匹配 ab\r\n 等。

regex perl multiline

0
推荐指数
1
解决办法
726
查看次数