问题列表 - 第20093页

Lambdas似乎不适用于VS2010中的ref类

Visual Studio 2010中一个很酷的新C++特性是lambda表达式.但是,我无法让他们在托管类中工作.

class UnmanagedClass {
    void Foo() {
        // Creating empty lambda within unmanaged class.
        // This compiles fine.
        auto lambda = [](){ ; };
    }
};

ref class ManagedClass {
    void Foo() {
        // Creating empty lambda within managed class.
        // This creates error C3809:
        // A managed type cannot have any friend functions/classes/interfaces.
        auto lambda = [](){ ; };
    }
};
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是编译器将匿名函数类创建为友元类,即使我从不使用类成员.这似乎意味着lambda不能在ref类中使用.

当我读到VS2010将lambda表达式添加到C++时,我感到非常高兴.有人知道如何让他们在ref类中工作吗?

lambda c++-cli c++11

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

如何在Perl中创建枚举类型?

我需要在perl中传回一个枚举值,我该怎么做?

从这个线程拉出来:Perl是否有枚举类型?

use strict;

use constant {
    HOME   => 'home',
    WORK   => 'work',
    MOBILE => 'mobile',
};

my $phone_number->{type} = HOME;
print "Enum: ".$phone_number->{type}."\n";
Run Code Online (Sandbox Code Playgroud)

但这不应该返回索引0吗?或者我理解这个错误?

编辑:

对于枚举类型,这样的事情会更令人期待吗?

use strict;

use constant {
    HOME   => 0,
    WORK   => 1,
    MOBILE => 2,
};

my $phone_number->{type} = HOME;
print "Enum: ".$phone_number->{type}."\n";
Run Code Online (Sandbox Code Playgroud)

编辑#2

此外,我想验证所选的选项,但传回Word而不是值.我怎样才能充分利用这两个例子?

@VALUES = (undef, "home", "work", "mobile");

sub setValue {

if (@_ == 1) {
   # we're being set
   my $var = shift;
   # validate the argument
   my $success …
Run Code Online (Sandbox Code Playgroud)

perl enums

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

随机访问容器不适合内存?

我有一个对象数组(比如图像),它太大而无法放入内存(例如40GB).但是我的代码需要能够在运行时随机访问这些对象.

做这个的最好方式是什么?

从我的代码的角度来看,当然,如果某些数据存在于磁盘上或临时存储在内存中,则无关紧要; 它应该具有透明访问权限:

container.getObject(1242)->process();
container.getObject(479431)->process();
Run Code Online (Sandbox Code Playgroud)

但是我应该如何实现这个容器呢?它应该只是将请求发送到数据库吗?如果是这样,哪一个是最佳选择?(如果是数据库,那么它应该是免费的而不是太多的管理麻烦,也许Berkeley DB或sqlite?)

我是否应该自己实现它,在访问沙子时,在内存充满时将内存记忆清除?或者那里有好的库(C++)吗?

对容器的要求是它最小化磁盘访问(我的代码可能更频繁地访问某些元素,因此它们应该保存在内存中)并允许快速访问.

更新:我发现STXXL不能解决我的问题,因为我存储在容器中的对象具有动态大小,即我的代码可以在运行时更新它们(增加或减少某些对象的大小).但STXXL无法处理:

STXXL容器假定它们存储的数据类型是普通旧数据类型(POD). http://algo2.iti.kit.edu/dementiev/stxxl/report/node8.html

你能否评论其他解决方案?那么使用数据库呢?哪一个?

c++ database memory random-access data-structures

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

Visual Studio 2008无法连接到SQL Server 2008

当我尝试从Visual Studio 2008到SQL Server 2008上的数据库建立新的数据连接时,它会失败.它说,它支持SQL Server连接,仅限SQL Server 2005版本.

我的装置缺少什么?或者我应该改变哪些设置?

database sql-server connection visual-studio

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

'此字段名称未知'错误(Crystal Reports)

这是我遇到的一个奇怪的问题.

我的记录选择公式如下,出于此错误的目的,我已将其缩小:

reportDocument.RecordSelectionFormula = " {@ClientName} = 'Smith' "
Run Code Online (Sandbox Code Playgroud)

如果我将这个精确的选择语句复制到Crystal中,它的预览很好,但是当从.NET运行时,我得到了

'此字段名称未知'.

问题出现在@ClientName公式字段中.

@ClientName 只包含:

formula = {aw_illust.CL1LNAM}
Run Code Online (Sandbox Code Playgroud)

我也可以将它设置为一个空白字符串(formula =""),它仍然给出

"这个字段名称未知."

这是一个奇怪的部分,如果我绕过公式并将公式文本直接放入.NET中,一切正常.

reportDocument.RecordSelectionFormula = " {aw_illust.CL1LNAM} = 'Smith' "
Run Code Online (Sandbox Code Playgroud)

这是相同的记录选择,除了' @ClientName'公式替换为' {aw_illust.CL1LNAM}'.它恰好发生在这一个报告上,我还有很多其他的Crystal Reports正在使用.NET中引用的公式.有任何想法吗?

crystal-reports

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

如何将C++函数导出为抛出异常的DLL?

当我尝试将以下函数导出为dll时:

extern "C" __declspec(dllexport) void some_func()
{
  throw std::runtime_error("test throwing exception");
}
Run Code Online (Sandbox Code Playgroud)

Visual C++ 2008给了我以下警告:

1>.\SampleTrainer.cpp(11) : warning C4297: 'some_func' : function assumed not to throw an exception but does
1>        The function is extern "C" and /EHc was specified
Run Code Online (Sandbox Code Playgroud)

我需要extern"C",因为我使用Qt QLibrary加载DLL并解析函数名称.没有extern"C"就找不到some_func()函数.

c++ dll compiler-warnings dllexport

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

添加iPhone OS事件的jQuery样式事件处理程序

我正在寻找一个超级简单的jQuery扩展.基本上我需要使用jQuery没有明确支持的一些事件.这些事件是iPhone的触摸事件,如ontouchstart,ontouchendontouchmove.

我通过这个工作:

// Sucks
$('.clickable').each(function() {
  this.ontouchstart = function(event) {
    //do stuff...
  };
}
Run Code Online (Sandbox Code Playgroud)

哪种糟透,不合情理.这就是我想要的:

// Better
$('.clickable').touchstart(function() {
  //do stuff...
}
Run Code Online (Sandbox Code Playgroud)

或者甚至更好1.4

// Awesome
$('.clickable').live('touchstart', function() {
  //.. do stuff
}
Run Code Online (Sandbox Code Playgroud)

这些事件不需要特殊处理,并且应该像任何其他事件一样工作,但我似乎无法弄清楚如何扩展jquery以使它们像所有其他事件一样工作.

javascript iphone jquery events

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

如何在XP兼容模式下启动另一个进程?

我们的应用程序需要安装HASP SRM设备驱动程序才能安装和运行我们的驱动程序.

目前,只有他们的5.50驱动程序在所有测试平台上一致地工作(他们的5.75(官方)和5.86(beta)驱动程序在测试的大约三分之一的计算机中崩溃).

因此,他们的5.50驱动程序是好的,当前可用的任何其他东西都被破坏,并且5.50驱动程序拒绝在Vista和Windows 7下加载.但是,如果我将exe的属性设置为"XP兼容模式",那么他们的5.50驱动程序安装并成功运行.

我在Windows 7下的注册表中挖了一下,我发现当我要求兼容模式时至少有一个条目:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\
    full-path REG_SZ WINXPSP3
Run Code Online (Sandbox Code Playgroud)

在尝试启动5.50驱动程序安装程序之前,我应该能够从安装程序添加该密钥.

问题:

  • 在哪里可以找到更完整的兼容模式讨论?
  • Vista与Windows 7下的键/设置是否不同?
  • 在32位与64位之间,键/设置是否不同?
  • 当我调用CreateProcess()时有没有办法直接询问这个?

installer winapi createprocess windows-vista windows-7

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

Python,多线程,获取网页,下载网页

我想在一个站点批量下载网页.我的'urls.txt'文件中有5000000个网址链接.这大约是300M.如何使多线程链接这些网址并下载这些网页?或批量如何下载这些网页?

我的想法:

with open('urls.txt','r') as f:
    for el in f:
        ##fetch these urls
Run Code Online (Sandbox Code Playgroud)

或扭曲?

它有一个很好的解决方案吗?

python twisted web-scraping

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

Cocoa全球捷径?

我想为我的应用创建一个全局快捷方式.我使用addGlobalMonitorForEventsMatchingMask方法执行此操作的"酷新方法".问题是,我的事件没有被"消耗":我的快捷方式包括空格键,因此每当我使用快捷方式时,当我在Finder中时会弹出Quicklook.

我怎样才能防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes控制器应用程序,都可以做到.

cocoa keyboard-shortcuts objective-c

13
推荐指数
2
解决办法
3588
查看次数