问题列表 - 第40508页

哪个更好/更安全使用:HandleRef或IntPtr(来自Microsoft的较新源代码不再使用HandleRef)

例如,在旧的.NET Framework 2.0源代码(Windows窗体,Visual Studio 2005 - Whidbey)中,使用HandleRef定义了GetClientRect函数:

    [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)]
    public static extern bool GetClientRect(HandleRef hWnd, [In, Out] ref NativeMethods.RECT rect); 
Run Code Online (Sandbox Code Playgroud)

在新的Windows API代码包(来自Microsoft,2009/2010)中,使用IntPtr定义了相同的函数:

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    internal static extern bool GetClientRect(IntPtr hwnd, ref CoreNativeMethods.RECT rect);
Run Code Online (Sandbox Code Playgroud)

实际上,HandleRef不用于任何Windows API Code Pack源文件,而是在旧.NET Framework源文件中的本机方法签名中大量使用.

c# winapi interop native intptr

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

为什么可以使用反射从已签名的程序集中加载未签名的程序集中的类型?

我有两个组件A和B. A是强名称而B不是.

根据MSDN,我不能从A引用B,因为强名称程序集只能引用另一个强名称程序集.

但是为什么可以加载程序集B,实例化它的类并使用反射从程序集A调用它们的方法?

// Inside assembly A
Assembly b = Assembly.LoadFrom("B");
obj myObj = b.CreateInstance("MyClass");
Run Code Online (Sandbox Code Playgroud)

这是否会破坏不允许在签名组中引用未签名组件的目的?

.net reflection strongname assemblies

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

虚拟继承不破坏静态组合?

我在过去5年的工作中假设虚拟继承打破了静态组合.

但是现在我发现,静态组合仍然保持不变,只有关于正确实例位置的附加信息.这是正确的吗?

c++ virtual-inheritance

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

如何在磁盘上创建一个numpy .npy文件?

是否可以创建.npy文件而不先在内存中分配相应的数组?

我需要创建并使用大型numpy数组,这个数组太大而无法在内存中创建.Numpy支持内存映射,但据我所知,我的选项是:

  1. 使用numpy.memmap创建memmapped文件.这会直接在磁盘上创建文件而不分配内存,但不存储元数据,所以当我稍后重新映射文​​件时,我需要知道它的dtype,形状等.在下面,请注意不指定形状结果在memmap中被解释为平面数组:

    In [77]: x=memmap('/tmp/x', int, 'w+', shape=(3,3))
    
    
    In [78]: x
    Out[78]: 
    memmap([[0, 0, 0],
           [0, 0, 0],
           [0, 0, 0]])
    
    
    In [79]: y=memmap('/tmp/x', int, 'r')
    
    
    In [80]: y
    Out[80]: memmap([0, 0, 0, 0, 0, 0, 0, 0, 0])
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在内存中创建一个数组,使用numpy.save保存,之后可以在memmapped模式下加载.这会将元数据与磁盘上的数组数据一起记录,但需要为整个阵列分配至少一次内存.

python numpy

12
推荐指数
2
解决办法
4765
查看次数

如何将数字(dec)转换为二进制(bin)数字并从bin转换为dec?

如何使用C#和Winforms将数字(dec)转换为二进制(bin)数字以及从bin转换为dec?

c#

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

未将对象引用设置为对象的实例

我有这样的功能

public void GetTablesWithUpperCaseName()
{
   SqlConnectionStringBuilder objConnectionString = new SqlConnectionStringBuilder();
   objConnectionString.DataSource = txtHost.Text;
   objConnectionString.UserID = txtUsername.Text;
   objConnectionString.Password = txtPassword.Text;
   objConnectionString.InitialCatalog = Convert.ToString(cmbDatabases.SelectedValue);

   SqlConnection sConnection = new SqlConnection(objConnectionString.ConnectionString);

   //To Open the connection.
   sConnection.Open();

   //Query to select table_names that have their names in uppercase letters.
   string selectTablesWithUppercaseName = @"SELECT 
                                              NAME
                                            FROM 
                                              sysobjects 
                                            WHERE 
                                              UPPER(name) COLLATE Latin1_General_BIN = name COLLATE Latin1_General_BIN 
                                              AND 
                                                 OBJECTPROPERTY(ID,N'IsTable')=1
                                              AND 
                                                 OBJECTPROPERTY(ID,N'IsMSShipped')=0 ";
   //Create the command object
   SqlCommand sCommand = new SqlCommand(selectTablesWithUppercaseName, sConnection);

   try
   {
       //Create the dataset
       DataSet dsListOfTablesWithUppercaseName …
Run Code Online (Sandbox Code Playgroud)

.net c# visual-studio winforms

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

Qt中的自定义和默认消息处理程序

我想在将消息记录到除qDebug之外的日志文件时使用默认的Qt消息处理程序.在这里我的解决方案,你有任何建议或这个实现可能存在的问题是什么?

标题:

#ifndef QLOGGER_H
#define QLOGGER_H

#include <QtCore/QObject>
#include <QtCore/QFile>
#include <QtCore/QDateTime>

class QLogger : public QObject
{
Q_OBJECT

public:
    QLogger();
   ~QLogger();

    static void start();
    static void finish();
    static QString filename;

private:
    static void myloggerfunction(QtMsgType type, const char *msg);

};

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

资源:

#include <QTextStream>
#include <QDateTime>
#include <QDir>
#include <iostream>

#include "qlogger.h"

using namespace std;

QString QLogger::filename=QString("log.txt");

QLogger::QLogger()
{
}

QLogger::~QLogger()
{
}

void QLogger::start()
{
    qInstallMsgHandler(myloggerfunction);
}

void QLogger::finish()
{
    qInstallMsgHandler(0);
}

void QLogger::myloggerfunction(QtMsgType type, const char …
Run Code Online (Sandbox Code Playgroud)

c++ debugging logging qt

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

文档对象模型(DOM)概念背后的真正想法是什么?

我是HTML和HTML5的初学者.
当我阅读以下链接时,我发现了术语DOMDOM API.我通读维基百科,但无法消化它背后的整个想法.

有人可以解释我:

  • 文档对象模型(DOM)概念背后的真正想法?
  • 它与HTML5有什么关系?

谢谢,

html html5 dom

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

如何将布尔值绑定到wpf中的组合框

好吧,我想知道如何将布尔属性绑定到一个组合框.Combobox将是一个是/否组合框.

wpf binding

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

如何在Visual Studio C++中构建exe

我是.NET C#开发人员并且正在尝试学习C++.

当我进行构建编译并检查Debug文件夹时,我在尝试从Microsoft Visual Studio的控制台应用程序创建exe时遇到问题.没有任何exe,只有一些清单文件和其他文件.我问这个是因为我不确定这是否有效?有没有其他方法这样做?

我已经尝试过Microsoft Visual Studio控制台和c:\ cl test.cpp,这给了我一个test.exe,但可以像在C#中那样从MSVS GUI完成吗?

c++ visual-studio

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