小编IAb*_*act的帖子

将处理器设置为32位模式

似乎以下是许多教程中关于将处理器从16位切换到32位的常用方法:

    mov     eax, cr0            ; set bit 0 in CR0-go to pmode
    or      eax, 1
    mov     cr0, eax
Run Code Online (Sandbox Code Playgroud)

为什么我不能简单地执行以下操作:

    or      cr0, 1
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?可能我唯一能想到的是我无法在cr0寄存器上执行这样的操作.

x86 assembly 32-bit 16-bit

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

是否建议在静态类本身中包含扩展方法?

我有:

public static class DataManager
{
    private static Dictionary<string, DataTable> dataTables;

    //    extension method
    public static DataTable GetTable ( this string TableName )
    {
        return dataTables[ TableName ];
    }

}
Run Code Online (Sandbox Code Playgroud)

我不想公开Dictionary集合,这是我想完成这个任务的方式.在我的调用方法中:

DataTable GetTable (string TableName)
{
    return TableName.GetTable();
}
Run Code Online (Sandbox Code Playgroud)

我还有另一种方式,或者可以这样做吗?或者这可以接受吗?

c# extension-methods

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

从子控件获取父面板的"名称"

我在两个堆栈面板中有一个静态和一组动态按钮.我想获得点击按钮的堆栈面板的名称.我不想要这种类型,我想要具体的名称.有没有办法在C#中做到这一点?

c# xaml

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

使用抽象类作为插件框架中的契约

抽象类可以用作"主机"和"插件"之间的契约对象吗?这个想法是插件继承了契约(我们称之为适配器).我们也理解框架中的所有参与者都必须继承MarshalByRefObject(MBRO).所以,这就是我们的想法 -

主持人:

class Host : MarshalByRefObject
{
}
Run Code Online (Sandbox Code Playgroud)

合同:

public abstract class PluginAdapter : MarshalByRefObject
{
}
Run Code Online (Sandbox Code Playgroud)

插件:

class myPlugin : PluginAdapter
{
}
Run Code Online (Sandbox Code Playgroud)

这三个都存在于不同的asm中.我们的主机将为每个插件创建一个新的AppDomain,并按如下方式创建PluginAdapter:

{
    ObjectHandle instHandle = Activator.CreateInstance(
    newDomain, data.Assembly.FullName, data.EntryPoint.FullName);

    PluginAdapter adapter = (PluginAdapter)instHandle.Unwrap();
}
Run Code Online (Sandbox Code Playgroud)

编辑:data具体类型在哪里myPlugin.

我们想知道该框架的实施是否有效.我们已经看到使用接口(IPlugin)进行插件派生的文章,以及作为契约的具体类.这些文章还会说可以使用抽象类,但没有给出该实现的示例.是否要求合同是具体的类?

编辑:在Richard Blewett的这个例子中 - C#Reflection - 他使用了一个更简单的实现:

合同:

public interface IPlugIn  
{  
    // do stuff  
}
Run Code Online (Sandbox Code Playgroud)

插件:

public class PlugIn : MarshalByRefObject, IPlugIn  
{  
}
Run Code Online (Sandbox Code Playgroud)

现在,如果使用抽象类作为契约,则插件不能继承合同和MBRO.那么,什么成为可扩展插件框架的最佳实现.我们是否应该继续实施远程操作,尽管最初我们正在开发单机操作?该项目预计将分布在整个网络中,也可能跨越互联网.我们还没有实现Tcp,因为我们正在努力让插件框架的基础知识得到充分理解和操作.

使用环回在单台机器上实现Tcp远程处理是否有意义?

c# plugins marshalbyrefobject .net-3.5

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

为什么`new int [x] {}`不会有效?

在MonoDevelop中,我有以下代码编译:

int[] row = new int[indices.Count]{};
Run Code Online (Sandbox Code Playgroud)

但是,在运行时,我得到:

Matrix.cs(53,53):错误CS0150:预期的常量值(CS0150)(testMatrix)

我知道这个错误意味着什么并强迫我调整数组的大小:

int[] row = new int[indices.Count]{};
Array.Resize(ref row, rowWidth);
Run Code Online (Sandbox Code Playgroud)

这是我必须处理的事情,因为我在Linux上使用MonoDevelop?我确信在.Net 3.5下我能够使用包含数组宽度的变量初始化数组.任何人都可以确认这是孤立的吗?如果是这样,我可以向bugzilla报告错误.

c# arrays opensuse monodevelop

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

SQL中的隐式数据类型转换是否会影响性能?

我有2个样本可以有效地做同样的事情 - 样本1:

command.Parameters.Add(ParamFoo, SqlDbType.Int)
command.Parameters(ParamFoo).Value = fooVal
Run Code Online (Sandbox Code Playgroud)

样本2:

command.Parameters.AddWithValue(ParamBar, barVal)
Run Code Online (Sandbox Code Playgroud)

建议使用哪种样品?我知道第二个样本正在进行一些转换.不要求转换并使用第一个样本不是最好的吗?

c# sql-server

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

如何隐藏 Devexpress GridLookUpEdit 的列标题?

我目前有一个 DevExpress GridControl,其中一列在 ColumnEdit 下分配了 GridLookUpEdit。然而,当我运行时,会显示一个列名称(显示成员)。

我知道使用 LookUpEdit 您可以将列标题设置为不可见,lookupedit.Properties.ShowHeader = False但我不知道如何使其对于 GridLookUpEdit 不可见。

vb.net devexpress visual-studio

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

更改禁用的组合框背景色的能力是错误​​还是功能?

我找到了以下解决方案:如果我放入设计器:

this.comboBox1.BackColor = System.Drawing.Color.White;  //or any other color
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; //it has to be that style
Run Code Online (Sandbox Code Playgroud)

我可以改变颜色comboBox1- 它不会总是灰色。

它应该是 DropDownList 并且 BackColor 应该放置在设计器中。

这是一个错误还是一个功能?

c# winforms

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

使用Salt的LocalClient,如何在test.ping命令中实现相同的结果或指定'-v'arg?

使用CLI,我可以输入以下内容:

盐'*'test.ping -v

结果输出如下:

minion_A:
True
minion_B:
True
minion_C:
True
minion_D:
Minion没有回来

如何使用LocalClient?获得相同的结果?这就是我目前正在尝试的东西,只返回具有以下响应的小兵True:

self.localClient.cmd('*', 'test.ping', ['-v'])  
Run Code Online (Sandbox Code Playgroud)

更新:
根据指示,有可能是一个错误与arg在命令中的元组,我也试过如下:

args = ('-v',)
return self.localClient.cmd('*', 'test.ping', arg=args)
Run Code Online (Sandbox Code Playgroud)

......可悲的是,仍然没有成功

python salt-stack

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

如何纠正警告:从不同大小的整数转换为指针[-Wint-to-pointer-cast]

我有一个带缓冲区的类,后来通过读取文件来填充:

char* m_buffer;
Run Code Online (Sandbox Code Playgroud)

...并在类析构函数中执行以下操作:

int i;
for(i=0; i < m_size; i++) {
  delete (char*)m_buffer[i];
}
delete m_buffer;
Run Code Online (Sandbox Code Playgroud)

我收到编译器警告delete (char*)m_buffer[i]:

警告:从不同大小的整数转换为指针[-Wint-to-pointer-cast]

我已经阅读了一些有关类似问题的其他问题,但我无法理解这些解决方案的适用方式.

更新 并回答评论:
m_buffer初始化如下:

m_buffer = new char[m_size];
Run Code Online (Sandbox Code Playgroud)

c++ arrays gcc pointers destructor

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