问题列表 - 第31371页

我应该从P/Invoke不安全代码中得到什么例外?

在我的解决方案中,我写了以下内容:

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern unsafe bool CopyFileEx(string lpExistingFileName,  
 string lpNewFileName, CopyProgressRoutine lpProgressRoutine, IntPtr lpData,  
 Boolean* pbCancel,    CopyFileFlags dwCopyFlags);

...

bool result;

unsafe{
  result = CopyFileEx(sourceFile, targetFile, null, IntPtr.Zero,  
                      null /* pointer */, 0);
}

if(!result)
    Win32Exception exc = new Win32Exception(Marshal.GetLastWin32Error()); 
// parameter could be omitted according to Win32Exception constructor 
// implementation
Run Code Online (Sandbox Code Playgroud)

假设CopyFileEx是使用DllImport属性的SetLastError = true参数导出的,我是否有机会在此处获取任何未定型异常?

我特别感兴趣的是包含在RuntimeWrappedException实例中的非CLR异常.在C++中,"throw 1"是一个有效的构造.那么我应该从这样的P/Invoke调用中获得什么异常,哪些我可以获得有关异常的信息(MSDN对CopyFileEx中的异常没有任何说明)?

.net c# pinvoke

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

Rails:使用与验证中的模型无关的表单字段

在Ruby on Rails应用程序中,我尝试使用来自验证中与模型无关的字段的信息.

这是模型的一部分作为一个例子(整个模型有点大):

class Scorecard < ActiveRecord::Base
  belongs_to :course
  belongs_to :user

  validate :attributes_consistency

  def attributes_consistency
    # Executed for all scorecards.  Checks if the user completed the hole attributes correctly
    if ( params[:no_fairways] and any_fairways? and !only_nine? ) or ( params[:no_fairways] and !any_h1_to_h9_score_blank and any_h1_to_h9_fairway? and only_nine? ) or ( params[:no_fairways] and !any_h10_to_h18_score_blank and any_h10_to_h18_fairway? and only_nine? )
      errors.add_to_base("You inidicated that you missed all the fairways, but you also marked one or more fairways in the scorecard.  Either uncheck the …
Run Code Online (Sandbox Code Playgroud)

ruby forms validation ruby-on-rails

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

WebGL中的所有简单函数都在哪里?

glBegin/ glEnd和每顶点绘图glVertex我可以理解使用数组可以更快.

但是在哪里glLoadIdentityglMultMatrixglTranslateglRotate

为什么我们自己必须处理所有的矩阵内容?

javascript webgl

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

缺少jQuery:属性id之后

$('#note').click({$('#trigger').remove();

    $('#info').slideDown(4000, function(){
        $(this).fadeOut(40000);
    });
});
Run Code Online (Sandbox Code Playgroud)

我在这里要做的很明显.遗憾的是,当我尝试这段代码时,FireBug会抛出以下错误:缺少:属性id之后.

在尝试调试一段时间后,我看到似乎没有错.突出显示在我的编辑器(Notepad ++)中正确显示,并且未找到先前的错误.

预先感谢您的任何帮助.

javascript jquery firebug

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

Python的mysqldb模糊文档

Python模块mysqldb中有许多转义函数,我的文档我不明白,而我查找它们的努力没有透露任何内容.

>>> print _mysql.escape.__doc__
escape(obj, dict) -- escape any special characters in object obj
using mapping dict to provide quoting functions for each type.
Returns a SQL literal string.
Run Code Online (Sandbox Code Playgroud)

这个文档页面说的是同样的事情.但是那个"映射字典"应该是什么?我尝试了几个(大多是随机的)东西,只是回错了.更令人沮丧的是,虽然该escape_string()方法有效,但其文档字符串是:

>>> print _mysql.escape_string.__doc__
escape_string(s) -- quote any SQL-interpreted characters in string s.

Use connection.escape_string(s), if you use it at all.
_mysql.escape_string(s) cannot handle character sets. You are
probably better off using connection.escape(o) instead, since
it will escape entire sequences as well as strings.
Run Code Online (Sandbox Code Playgroud)

所以,我最好使用_mysql.escape(),是吗?嗯......好吧,但是怎么样?究竟是什么"映射字典"?PHP,至少在这方面,不那么神秘.

python mysql

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

如何使抽象类正确返回另一个抽象类的具体实例?

我最近重新编写了一个自己的库来尝试将接口与实现分离.我在最后一个问题上遇到了一个用于返回另一个类的实例的类.

在接口定义中,我做了类似的事情

struct IFoo
{
    virtual const IBar& getBar() = 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在具体的Foo getBar看起来像

const IBar& Foo::getBar()
{
    Bar ret = Bar();
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

问题是,一旦getBar完成就会删除ret,当复制构造函数试图像这样使用Bar时会导致严重崩溃

const Bar myBar = myFoo.getBar();
Run Code Online (Sandbox Code Playgroud)

我一直在阅读各种各样的东西,我知道通过引用返回是不受欢迎的,但我没有看到任何其他方式(我不想返回Bar*因为我不想手动删除返回值).

抽象类返回从另一个抽象类派生的具体类的实例的正确方法(如果存在任何方式)是什么?

注意我确实看到了这个解决方案:从函数返回一个抽象类, 但我不想让返回值静态和松散线程安全.

c++ abstract-class interface

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

如何删除PostgreSQL数据库中的所有表?

如何从命令行中删除PostgreSQL中的所有表?

希望删除数据库本身,只是所有的表格,并在他们所有的数据.

postgresql

930
推荐指数
22
解决办法
60万
查看次数

如何覆盖QWizard中的"下一个"插槽?

我正在使用QWizard类,其中包含几个QWizardPage.对于某些页面,我需要在单击"下一步"按钮时执行某些操作.

我试图覆盖nextQWizard类中的插槽; 然而,似乎这不起作用.程序仍然进入next父QWizard类的原始插槽,而不是我实现的那个.

这是因为这个next插槽是虚拟保护的吗?单击下一个按钮后如何做一些事情?


我的QWizard类的头文件如下.顺便说一句,accept信号正如我预期的那样正常.

#ifndef PRIMERWIZARD_H
#define PRIMERWIZARD_H

#include <QWizard>

namespace Ui {
    class PrimerWizard;
}

class PrimerWizard : public QWizard {
    Q_OBJECT
public:
    PrimerWizard(QWidget *parent = 0);
    ~PrimerWizard();
protected slots:
    void next();
    void accept();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::PrimerWizard *ui;
};

#endif // PRIMERWIZARD_H
Run Code Online (Sandbox Code Playgroud)

我通过QtCreator的向导(Ha XD)创建了一个新的向导实例

代码如下:

PrimerWizard* pW = new PrimerWizard(this);
pW->exec();
Run Code Online (Sandbox Code Playgroud)

信号槽连接next由QtCreator创建,我无法找到它实际连接的位置.我认为连接是通过这个函数在ui_PrimerWizard.h中构建的:

QMetaObject::connectSlotsByName(PrimerWizard);
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4

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

.NET应用程序服务器与Java应用程序服务器之间的差异

我想更好地理解.NET的应用服务器模型与大多数Java应用服务器使用的原因相比的原因.

在大多数情况下,我见过ASP.NET Web应用程序,业务逻辑托管在Web服务器的asp.net主机进程中.另一种常见方法是拥有一个物理或逻辑上不同的层,它承载您的业务对象,然后作为Web服务公开或通过WCF等机制访问.后一种方法通常但并不总是在需要更高规模时使用.在COM对象的时代,我见过Microsoft Transaction Server(MTS)以及后来用于托管包含业务逻辑的COM对象的COM +托管,MTS(理论上)管理对象生存期,事务,并发yada yada.这个模型似乎在ASP.NET领域似乎已经消失了.

在Java世界中,您可能将Apache与Tomcat一起作为servlet容器,并将业务对象托管在Tomcat中.在这种情况下,Tomcat提供与MTS在.NET世界中提供的功能类似的功能.

几个问题:

  1. 为什么Microsoft与Java方法的根本区别在于应用程序服务器?在创建这些框架时,这必须是架构/设计选择.
  2. 每种方法的优缺点是什么?
  3. 为什么Microsoft将MTS托管模型(类似于Tomcast servlet托管模型)转移到更常见的当前方法,即将业务对象作为Web服务器的ASP.NET进程的一部分?
  4. 如果你想在今天的ASP.NET应用程序中实现MTS类型方法或Tomcat类型方法,我假设一个常见的模式是在某些IIS进程中托管业务对象(可能在某些不同的物理或逻辑层上)并通过WCF访问(或标准的asmx Web服务,无论如何).这是正确的假设吗?

asp.net tomcat web-applications mts

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

我应该在InnoDB中一起避免COUNT吗?

现在,我正在讨论是否使用COUNT(id)或"计数"列.我听说InnoDB COUNT在没有WHERE子句的情况下非常慢,因为它需要锁定表并进行完整的索引扫描.使用WHERE子句时这是相同的行为吗?

例如,如果我有一个包含100万条记录的表.如果COUNT没有WHERE条款,则需要使用索引查找100万条记录.如果添加一个WHERE子句会减少符合条件的行数(从100万到500,000),查询是否会明显加快?

考虑一下SO上的"徽章"页面,会在badges表格中添加一个列,count并且只要用户获得该特定徽章的速度比执行一个更快,就会递增它SELECT COUNT(id) FROM user_badges WHERE user_id = 111吗?

使用MyIASM不是一种选择,因为我需要InnoDB的功能来维护数据完整性.

mysql innodb count

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