似乎以下是许多教程中关于将处理器从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寄存器上执行这样的操作.
我有:
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#中做到这一点?
抽象类可以用作"主机"和"插件"之间的契约对象吗?这个想法是插件继承了契约(我们称之为适配器).我们也理解框架中的所有参与者都必须继承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远程处理是否有意义?
在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报告错误.
我有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)
建议使用哪种样品?我知道第二个样本正在进行一些转换.不要求转换并使用第一个样本不是最好的吗?
我目前有一个 DevExpress GridControl,其中一列在 ColumnEdit 下分配了 GridLookUpEdit。然而,当我运行时,会显示一个列名称(显示成员)。
我知道使用 LookUpEdit 您可以将列标题设置为不可见,lookupedit.Properties.ShowHeader = False但我不知道如何使其对于 GridLookUpEdit 不可见。
我找到了以下解决方案:如果我放入设计器:
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 应该放置在设计器中。
这是一个错误还是一个功能?
使用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)
......可悲的是,仍然没有成功
我有一个带缓冲区的类,后来通过读取文件来填充:
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# ×6
arrays ×2
.net-3.5 ×1
16-bit ×1
32-bit ×1
assembly ×1
c++ ×1
destructor ×1
devexpress ×1
gcc ×1
monodevelop ×1
opensuse ×1
plugins ×1
pointers ×1
python ×1
salt-stack ×1
sql-server ×1
vb.net ×1
winforms ×1
x86 ×1
xaml ×1