小编stj*_*stj的帖子

无法分配参数

我宣布了一个功能

func someFunction(parameterName: Int) {
    parameterName = 2  //Cannot assign to let value parameter Name
    var a = parameterName
}
Run Code Online (Sandbox Code Playgroud)

并尝试在运行时为其分配一个值,但它给出了错误"无法分配给值参数名称".

参数名称默认是常量吗?我可以将其更改为变量吗?

ios swift ios8

24
推荐指数
2
解决办法
9046
查看次数

g ++错误使用-flto选项

我试图在g ++中启用链接时间优化.没有-flto选项,我的程序编译正常.当我将它添加到我的Makefile时,目标文件编译没有错误,例如

g++ main.cpp -I ../includes -std=c++0x -fopenmp -Wall -pedantic -Wno-vla -flto -D INFO_ -c -o .obj/main.o
Run Code Online (Sandbox Code Playgroud)

但是当谈到链接程序时:

g++ -fwhole-program -I ../includes -std=c++0x -fopenmp -Wall -pedantic -Wno-vla -flto -D INFO_ .obj/main.o .obj/atom.o .obj/bee.o .obj/colony.o ../includes/.obj/error.o ../includes/.obj/CmdLine.o ../includes/boost_lib_deb/libboost_program_options.a ../includes/gmp_lib_deb/lib/libgmpxx.a ../includes/gmp_lib_deb/lib/libgmp.a -o BeeBench
Run Code Online (Sandbox Code Playgroud)

我收到很多这样的错误:

includes/gmp_lib_deb/lib/libgmpxx.a ../includes/gmp_lib_deb/lib/libgmp.a -o BeeBench
`typeinfo for boost::program_options::too_many_positional_options_error' referenced in section `.rodata._ZTVN5boost15program_options33too_many_positional_options_errorE[vtable for boost::program_options::too_many_positional_options_error]' of ../includes/boost_lib_deb/libboost_program_options.a(cmdline.o): defined in discarded section `.gnu.linkonce.t._ZTIN5boost15program_options33too_many_positional_options_errorE' of .obj/main.o (symbol from plugin)

`typeinfo for boost::program_options::too_many_positional_options_error' referenced in section `.rodata._ZTIN5boost16exception_detail19error_info_injectorINS_15program_options33too_many_positional_options_errorEEE[typeinfo for boost::exception_detail::error_info_injector<boost::program_options::too_many_positional_options_error>]' of ../includes/boost_lib_deb/libboost_program_options.a(cmdline.o): …
Run Code Online (Sandbox Code Playgroud)

c++ linker boost g++

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

如何从ASP.NET应用程序启动/停止Windows服务 - 安全问题

这是我的Windows/.NET安全堆栈:

  • 在Windows Server 2003框上作为LocalSystem运行的Windows服务.
  • 一个.NET 3.5网站运行在同一个框中,在"默认"生产服务器IIS设置下(所以可能是NETWORKSERVICE用户?)

在我的默认VS2008 DEV环境中,我有这个方法,它从ASP.NET应用程序调用,它工作正常:

private static void StopStartReminderService() {

    ServiceController svcController = new ServiceController("eTimeSheetReminderService");

    if (svcController != null) {
        try {
            svcController.Stop();
            svcController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(10));
            svcController.Start();
        } catch (Exception ex) {
            General.ErrorHandling.LogError(ex);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在生产服务器上运行它时,我从ServiceController收到以下错误:

源:System.ServiceProcess - > System.ServiceProcess.ServiceController - > IntPtr GetServiceHandle(Int32) - > System.InvalidOperationException消息:无法在计算机'.'上打开eTimeSheetReminderService服务.

为什么会发生这种情况,我该如何解决?

编辑:

答案如下,主要是评论,但澄清:

  1. 问题与安全相关,并且是因为NETWORKSERVICE帐户没有足够的权限来启动/停止服务
  2. 我创建了一个本地用户帐户,并将其添加到PowerUsers Group(该组几乎拥有管理员权限)
  3. 我不希望我的整个Web应用程序一直冒充该用户,所以我只在我操纵服务的方法中冒充.我通过使用以下资源来帮助我在代码中执行此操作:

MS KB文章这个,只是为了更好地理解

注意:我没有通过web.config模拟,我在代码中执行.请参阅上面的MS KB文章.

asp.net security impersonation windows-services

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

芯片数据表没有说明如何与之通信

所以从一开始我绝对不是计算机工程师,但我正在努力学习.感谢爸爸,我发现了一些(93C46CB3)芯片以及一些其他不起眼的芯片.我研究了数据表,并找出哪些引脚在芯片上做了什么,但我还没弄清楚如何读取和写入它.它说它是串行的,但它没有说它是什么波特率.此外,它没有说我应该多快开启和关闭引脚.它使用PWM吗?如果是这样,有多快?数据表在这里

http://www.datasheetspdf.com/datasheet/93C46CB3.html

PG.图7是用于读写的图表,但没有说明这些间隔有多长."S""D"和"Q"都是引脚btw.

我正在尝试使用Arduino和Raspberry Pi来读取和写入其内容,无论哪种方法都可以使用它.提前致谢!

tldr; 我为这个芯片打开和关闭引脚的速度有多快,如果它有串行通信,它的波特率是多少?

c++ serial-port arduino microchip raspberry-pi

9
推荐指数
2
解决办法
267
查看次数

无符号值之间的减法 - 意外结果

我有两个变量(test1test2),都是无符号的.我需要检查哪一个更大.

我试图了解如果发生溢出会发生什么.

我的第一个测试是使用uint8_t(char)数据类型完成的:

#include <stdio.h>
#include <stdint.h>
#include <math.h>

int main()
{
    uint8_t test1 = 0;
    printf("test1 = %d\n", test1);

    uint8_t test2 = pow(2, 8 * sizeof(test1)) - 1; //max holdable value of uint8_t
    printf("test2 = %d\n", test2);

    uint8_t test3 = test1 - test2;
    printf("test1 - test2 = %d\n", test3);

    if ((test1 - test2) == 0)
        printf("test1 == test2\n");
    if ((test1 - test2) > 0)
        printf("test1 > test2\n");
    if ((test1 - test2) < 0) …
Run Code Online (Sandbox Code Playgroud)

c c++

6
推荐指数
2
解决办法
1425
查看次数

ArangoDB 打开文件太多

几天以来,我们的 ArangoDB 安装遇到了问题。启动后几分钟/最多一个小时,所有与数据库的连接都会被拒绝。arango 日志文件显示“打开的文件太多”。“lsof | grep arango | wc -l”显示数据库有大约 50,000 个打开的文件句柄,这比最大值低很多。Linux系统允许(大约3m)。有谁知道这个错误来自哪里?

我们使用的是带有 3.13 内核的 Ubuntu Linux。30 GB RAM 和三个核心。该数据库仍然很小,大约有 150 万个条目,大小为 50GB。

谢谢,塞卡纳

编辑:“netstat -anpt | fgrep 2480”显示:

root@syssec-graphdb-001-test:~# netstat -anpt | fgrep 2480
tcp        0      0 10.215.17.193:2480      0.0.0.0:*               LISTEN               7741/arangod
tcp        0      0 10.215.17.193:2480      10.215.50.30:53453      ESTABLISHED          7741/arangod
tcp        0      0 10.215.17.193:2480      10.215.50.31:49299      ESTABLISHED          7741/arangod
tcp        0      0 10.215.17.193:2480      10.215.50.30:53155      ESTABLISHED          7741/arangod
Run Code Online (Sandbox Code Playgroud)

“ulimit -n”的结果为 1024,所以我认为 ~50,000 都是 arango 进程在一起。

数据库死亡前日志文件中的最后几行:

2015-05-26T12:20:43Z [9672] ERROR cannot open datafile '/data/arangodb/databases/database-235999516/collection-28464454696/datafile-18806474509149.db': 'Too many …
Run Code Online (Sandbox Code Playgroud)

arangodb

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

如何检查 ArangoDB 中是否已存在集合

假设Col1我的数据库中已经存在一个集合。所以,做类似的事情:

var col = db.collection('Col1');
col.save({"name":"something"});
Run Code Online (Sandbox Code Playgroud)

会工作得很好。

Col2但是,如果我的数据库中尚不存在的集合尝试使用相同的东西,即

var col = db.collection('Col2');
col.save({"name":"something"})
Run Code Online (Sandbox Code Playgroud)

也会工作得很好。只是它不存在并且不会显示在我的数据库中。如果它抛出一些错误或我可以使用的内容trycatch结果语句。但既然这是不可能的,我怎么知道集合是否已经存在?

node.js arangodb arangojs

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

如何确保文档中的字段在 ArangoDB 中是唯一的?

我在 ArangoDB 中创建了一个集合,需要说明一个字段是唯一的。例如,我需要说在 'user_table' 中,'email' 是唯一的。怎么做?

database unique arangodb aql

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

仅对所选行求和

以下查询获取客户声明:

SELECT  t.S_Type,t.Number, t.Debit, t.Credit,t.CustID,b.Balance
FROM    Statement as t
    CROSS apply
    (
        SELECT  Balance = SUM(Debit) - SUM(Credit)
        FROM    Statement as x
        WHERE   x.Number<= t.Number 
    ) b

ORDER BY t.Number
Run Code Online (Sandbox Code Playgroud)

查询结果:

type            #    Debit  credit  cid  balance 
Sales Invoice   1   200.00  0.00    3   200.00
Sales Invoice   10  850.00  0.00    3   1050.00
Service Invoice 11  90.00   0.00    21  1140.00
Sales Invoice   12  20.00   0.00    3   1160.00
Sales Invoice   13  200.00  0.00    2   1360.00
Sales Invoice   14  20.00   0.00    9   1380.00
Sales …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

struct Compiler Error向量的C++迭代器

我创建了一个struct包含两个变量的类型.我在a中使用这种数据类型vector,它再次存储在a中map,如下所示:

struct A {
    int x;
    Y y;
    A() {};
    A(int _x, Y _y) { x=_x, y=_y; };
};

typedef std::vector<A> LA;
typedef std::map<uint,LA> MB;

MB b;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用迭代器时,例如

std::vector<LA>::iterator it = b[x].begin();
Run Code Online (Sandbox Code Playgroud)

编译器给出了这个错误:

错误:没有可行的从'__wrap_iter <A*>'转换为'__wrap_iter <std :: __ 1 :: vector <A,std :: __ 1 :: allocator <A >>>*>'std :: vector <LA> :: iterator it = b [x] .begin();

候选构造函数(隐式复制构造函数)不可行:没有已知的从'iterator'(又名'__wrap_iter <pointer>')转换为'const std :: __ 1 :: __ wrap_iter <std :: __ 1 :: vector …

c++ struct iterator vector

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