问题列表 - 第16143页

使用LayoutKind.Explicit的布尔编组,这是否已按设计破坏或失败?

首先,布尔类型被称为具有四字节值的默认编组类型.以下代码有效:

    struct A 
    { 
        public bool bValue1; 
        public int iValue2; 
    }
    struct B 
    { 
        public int iValue1;
        public bool bValue2; 
    }
    public static void Main()
    {
        int[] rawvalues = new int[] { 2, 4 };

        A a = (A)Marshal.PtrToStructure(GCHandle.Alloc(rawvalues, GCHandleType.Pinned).AddrOfPinnedObject(), typeof(A));
        Assert.IsTrue(a.bValue1 == true);
        Assert.IsTrue(a.iValue2 == 4);
        B b = (B)Marshal.PtrToStructure(GCHandle.Alloc(rawvalues, GCHandleType.Pinned).AddrOfPinnedObject(), typeof(B));
        Assert.IsTrue(b.iValue1 == 2);
        Assert.IsTrue(b.bValue2 == true);
    }
Run Code Online (Sandbox Code Playgroud)

显然,这些结构独立编组就好了.值按预期转换.但是,当我们将这些结构组合成一个"联合"时,通过声明LayoutKind.Explicit,如下所示:

    [StructLayout(LayoutKind.Explicit)]
    struct Broken
    {
        [FieldOffset(0)]
        public A a;
        [FieldOffset(0)]
        public B b;
    }
Run Code Online (Sandbox Code Playgroud)

我们突然发现自己无法正确编组这些类型.以下是上述结构的测试代码及其失败方式:

        int[] rawvalues = new int[] …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke boolean marshalling layoutkind.explicit

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

无法通过MacPorts安装Git-core + svn

我试图使用以下命令在mac os x 10.5上安装git-svn,

sudo port install git-core +svn
Run Code Online (Sandbox Code Playgroud)

它安装成功,但我可以在任何地方找到git-svn命令,

~/ $ sudo port installed git-*
The following ports are currently installed:
  git-core @1.6.5.2_0+doc+svn (active)
Run Code Online (Sandbox Code Playgroud)

已安装显示已安装正确的选项.

svn git macports

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

"String.Contains方法只支持可在客户端上评估的参数"

public static void MyFunction(MyErrorClass err)
{
    var query = from filter in DataContext.ErrorFilters select filter;
    query = query.Where(f => err.ErrorMessage.Contains(f.ErrorMessage));
    List<ErrorFilter> filters = query.ToList();
    //...more code
}
Run Code Online (Sandbox Code Playgroud)

所以我在上面的代码中遇到了一些问题,而且我从主题行的主题行中得到了错误query.ToList().这是我正在尝试做的事情:

首先,我有一个自定义错误类,MyErrorClass.每当我的网站上发生错误时,我都会MyErrorClass从异常中创建一个对象,将异常中的所有数据存储在该对象中,并将信息存储在数据库中.

我要跟踪的异常属性之一是error(ErrorMessage)的消息.我ErrorFilters在数据库中设置了一个表,用户可以根据该表过滤错误ErrorMessage.所以说你得到了大量的错误,上面写着"System.Data.SqlClient.SqlException:Timeout expired.在操作完成之前已经过了超时时间,或者服务器没有响应.",你想忽略它们.您只需使用ErrorMessage将过滤器添加到数据库为"超时过期",并将其设置为忽略.

现在,上面的类设置为出错,并决定是否应该过滤错误.我正在尝试获取ErrorMessage与错误匹配的所有过滤器的列表.

我确定这是一个简单的解决方案,我只是不知道如何解决它.

c# linq asp.net linq-to-sql

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

Internet Explorer中的代码点火器登录,会话和重定向问题?

我仍然是代码点火器的新手,我在登录系统工作时遇到了问题.

当我使用Firefox时,登录始终有效.登录始终适用于某些IE7浏览器,但在其他IE7浏览器上始终失败.

在跟踪代码时,我看到models/redux_auth_model.php确实成功验证了用户,它将用户信息写入$ this-> session-> set_userdata(),并将它们重定向到我选择的成员页面.这是代码:

public function login($identity = false, $password = false)
{
            $identity_column = $this->config->item('identity');
            $users_table     = $this->tables['users'];

            if ($identity === false || $password === false || $this->identity_check($identity) == false)
            {
                return false;
            }

            $query = $this->db->select($identity_column.', email, password, group_id')
                           ->where($identity_column, $identity)
                           ->where('active', 'Active')
                           ->limit(1)
                           ->get($users_table);

        $result = $query->row();

        if ($query->num_rows() == 1)
        {
            //$password = $this->hash_password_db($identity, $password);

           if (!empty($result->activation_code)) { return false; }

                if ($result->password === $password)
                {
                    $this->session->set_userdata($identity_column,  $result->{$identity_column});
                    $this->session->set_userdata('email',  $result->email);
                    $this->session->set_userdata('group',  $result->group_id);
                    return true; …
Run Code Online (Sandbox Code Playgroud)

session redirect codeigniter

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

如何在Vim中创建带控件和功能键的映射?

我希望有一个映射来快速退出所有缓冲区,以便在我修改大量文件时使用.控制和功能键一起证明了一个很好的安全性,这样我就不小心碰到了这个组合,无意中离开了Vim.我尝试了以下映射:

map <C-F10> :qa<CR>
Run Code Online (Sandbox Code Playgroud)

无济于事.如果我放弃了控制,我可以单独退出F10 - 为什么在我的映射中不控制使用F10?

vim

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

iPhone:绘制旋转文字?

我想在视图中绘制一些文本,旋转90°.我对iPhone开发很陌生,而且在网络上发布了许多不同的解决方案.我已经尝试了一些,通常最终我的文字被修剪.

这里发生了什么?我正在一个相当小的空间(一个表格视图单元格)中画画,但是必须采用"正确"的方式来做到这一点......对吗?


编辑:以下是几个例子.我正试图在左边的黑条上显示文字" 12345 ".

  1. 第一次尝试,来自RJShearman的Apple Discussions

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSelectFont (context, "Helvetica-Bold", 16.0, kCGEncodingMacRoman);
    CGContextSetTextDrawingMode (context, kCGTextFill);
    CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
    CGContextSetTextMatrix (context, CGAffineTransformRotate(CGAffineTransformScale(CGAffineTransformIdentity, 1.f, -1.f ), M_PI/2));
    CGContextShowTextAtPoint (context, 21.0, 55.0, [_cell.number cStringUsingEncoding:NSUTF8StringEncoding], [_cell.number length]);
    CGContextRestoreGState(context);
    
    Run Code Online (Sandbox Code Playgroud)

    尝试一个.这两个中的一个和一部分被剪掉了.http://dev.deeptechinc.com/sidney/share/iphonerotation/attempt1.png

  2. 第二次尝试,来自zgombosi的iPhone Dev SDK.相同的结果(这里的字体略小,因此剪裁较少).

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGPoint point = CGPointMake(6.0, 50.0);
    CGContextSaveGState(context);
    CGContextTranslateCTM(context, point.x, point.y);
    CGAffineTransform textTransform = CGAffineTransformMakeRotation(-1.57);
    CGContextConcatCTM(context, textTransform);
    CGContextTranslateCTM(context, -point.x, -point.y);
    [[UIColor redColor] set];
    [_cell.number drawAtPoint:point withFont:[UIFont fontWithName:@"Helvetica-Bold" size:14.0]]; …
    Run Code Online (Sandbox Code Playgroud)

iphone drawing text rotation

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

C#:将指针类型用作字段?

在C#中,可以声明一个具有指针类型成员的结构(或类),如下所示:

unsafe struct Node
{
  public Node* NextNode;
}
Run Code Online (Sandbox Code Playgroud)

它是否安全(错误......忽略了那个具有讽刺意味的unsafe小旗......)使用这种结构?我的意思是在堆上长期存储.根据我的理解,GC可以自由移动,当它更新对已被移动的内容的引用时,它是否也更新了指针?我猜不是,这会使这种结构非常不安全,对吧?

我确信这样做有更好的选择,但称之为病态的好奇心.

编辑:似乎有些混乱.我知道这不是一个伟大的结构,我纯粹想知道这是否是一个安全的结构,即:指针保证指向你最初指向它的东西?

原始C代码用于遍历树(深度优先)而不递归,其中树存储在数组中.然后通过递增指针遍历数组,除非满足某个条件,然后将指针设置为NextNode,其中遍历继续.当然,在C#中也可以通过以下方式实现:

struct Node
{
  public int NextNode;
  ... // other fields
}
Run Code Online (Sandbox Code Playgroud)

其中int是下一个节点的数组中的索引.但出于性能原因,我最终会摆弄指针和fixed数组以避免边界检查,而原始的C代码似乎更自然.

c# pointers unsafe

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

什么是批次?

在Transact-SQL中,批处理是一组一起提交并作为一个组一个接一个地执行的SQL语句.批处理可以存储在命令文件中.

包含多个SQL语句的*.sql文件是否被视为批处理?还有什么我们认为批次?

sql t-sql

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

Dojo DOH怎么了?

Dojo Toolkit过去常常带有一个名为"Doh"的测试工具.它位于/ utils目录中.

现在当你下载dojo-release-1.3.2时,无法找到/ utils目录.

Doh已经死了吗?

dojo unit-testing doh

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

如何在数学中加入换行符

我想表达以下句子(source_location也是斜体,它没有正确呈现):

每个条目都具有元组的列表:< 源位置,R/W,trip_counter,发生,杀死(在后面说明)>

我目前的解决方法是:

$ \left\langle
\textit{source\_location}, \textit{R/W}, \textit{trip\_counter},
\textit{occurrence}, \textit{killed} \text{(explained in the later)}
\right\rangle $
Run Code Online (Sandbox Code Playgroud)

我正在使用双柱纸.这个<..>太长了,但没有换行,因为它是一个数学.在这种情况下如何自动(或手动)设置换行符?看来,\left\langle\right\rangle应在单一的数学.所以,很难闯入多个数学.

$<$并且$>$会是另一种选择,但我不喜欢它.

latex

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