我正在用C++编写一个Windows控制台应用程序,并希望在成功时返回零,并在失败时S_OK返回有意义的错误代码(即,应该返回0,并且E_OUTOFMEMORY应该返回不同的返回值E_FAIL,依此类推).以下是一个好的方法吗?:
int wmain(int argc, wchar_t *argv[])
{
HRESULT hr = DoSomething();
return (int) hr;
}
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?也许是我忘记或找不到的标准Win32 API函数或宏?
我只能找到小c的参考资料。我假设大写的 C 代表 Unicode,但我不确定。对于较小的数字,两者输出相同的字符。
作为这个问题的必然结果,我想知道是否有好的比较研究我可以参考并传递使用RDMBS的优点做连接优化与系统非规范化,以便始终一次访问一个表.
具体来说,我想要的信息:
有一段历史可以看到我要去的地方:我们的系统使用内部数据库抽象层,但它很老,无法处理多个表.因此,必须在每个相关表上使用多个查询来实例化所有复杂对象.现在为了确保系统始终使用单个表格,在整个表格中使用重度系统非规范化,有时会将两个或三个层次压平.至于nn关系,他们似乎已经通过精心设计他们的数据模型来解决这个问题,以避免这种关系,并始终回到1-n或n-1.
最终结果是一个复杂的过于复杂的系统,客户经常抱怨性能.在分析这样的瓶颈时,他们永远不会质疑系统所基于的这些基本前提,并且总是寻找其他解决方案.
我错过了什么 ?我认为整个想法是错误的,但不知何故缺乏无可辩驳的证据来证明(或反驳)它,这就是我转向你的集体智慧,指向我的良好,被广泛接受的文学,可以说服我团队中的其他人方法是错误的(说服我,我对于一致的数据模型我太偏执和教条).
我的下一步是建立自己的测试平台并收集结果,因为我讨厌重新发明轮子我想知道这个主题已经有了什么.
----编辑注意:系统最初是使用没有数据库系统的平面文件构建的...后来才将其移植到数据库,因为客户端坚持使用Oracle进行系统管理.他们没有重构,只是简单地添加了对现有系统的关系数据库的支持.平面文件支持后来被删除,但我们仍在等待重构利用数据库.
我听过很多关于Vim的消息,包括优点和缺点.看起来你应该(作为开发人员)使用Vim比使用任何其他编辑器更快.我正在使用Vim来做一些基本的东西,而且我最好用Vim的效率低 10倍.
当你谈论速度时你应该关心的两件事(你可能不太关心它们,但你应该这么做)是:
这里有两个例子,说明为什么我对Vim的效率低得多.
复制/剪切和粘贴.我一直这样做.使用所有当代编辑器,您可以Shift 用左手按下,然后用右手移动光标以选择文本.然后Ctrl+ C副本,你移动光标和Ctrl+ V贴.
有了Vim,它太可怕了:
yy 复制一行(你几乎不想要整行!)[number xx]yy将xx行复制到缓冲区中.但你永远不知道你是否选择了你想要的东西.我经常做的[number xx]dd,然后u撤消!另一个例子?搜索和替换.
/,然后键入要搜索的内容,然后如果\在每个特殊字符前放置了一些特殊字符,则按Enter.与Vim的一切都是这样的:似乎我不知道如何以正确的方式处理它.
我的问题是:
你使用Vim的方式是什么让你比现代编辑更有效率?
我希望我的WPF应用程序中的主菜单的行为类似于IE8中的主菜单:
我怎样才能做到这一点?它必须是代码吗?
添加以回应提交的答案,因为我仍然遇到麻烦:
我的Shell代码隐藏现在看起来像这样:
public partial class Shell : Window
{
public static readonly DependencyProperty IsMainMenuVisibleProperty;
static Shell()
{
FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata();
metadata.DefaultValue = false;
IsMainMenuVisibleProperty = DependencyProperty.Register(
"IsMainMenuVisible", typeof(bool), typeof(Shell), metadata);
}
public Shell()
{
InitializeComponent();
this.PreviewKeyUp += new KeyEventHandler(Shell_PreviewKeyUp);
}
void Shell_PreviewKeyUp(object sender, KeyEventArgs e)
{
if (e.SystemKey == Key.LeftAlt || e.SystemKey == Key.RightAlt)
{
if (IsMainMenuVisible == true)
IsMainMenuVisible = false;
else
IsMainMenuVisible = true;
}
}
public bool IsMainMenuVisible
{ …Run Code Online (Sandbox Code Playgroud) 我使用jQuery验证插件的validate方法设置表单验证,我有一个提交处理程序来修改输入元素的值(我使用YUI编辑器,它需要saveHTML()调用将iframe的内容复制到textarea元素.).提交表单时,我希望验证程序在执行提交处理程序后验证表单.但是如果在验证调用之后注册它,则它不会执行我的提交处理程序.
例如,
<form id="form1" action="/test">
<input type="text" name="txt1" id="txt1" />
<input type="submit" value="submit" />
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function() {
$("#form1").submit(function() {
$("#txt1").val("123456");
});
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
在我的提交处理程序之后验证表单,以便取消提交.
$(document).ready(function() {
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
$("#form1").submit(function() {
$("#txt1").val("123456");
});
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我更改顺序,则在我的提交处理程序之前验证表单.
我在安装程序中添加了几个自定义页面.这些页面从用户和磁盘收集一些数据,我想在最终安装步骤开始之前向用户显示这些数据.Inno Setup完全为此目的准备了"准备安装"页面.
如何在此页面中添加文字?默认情况下,它显示给我:
Destination location:
C:\Program Files\MyProgram
Run Code Online (Sandbox Code Playgroud)
我想在这里附上一些文字.可能吗?
我觉得我已经做好了一切,但我根本无法让灯箱工作.它还提出了jQuery没有在jQuery文件中定义的错误.文件是http://www.lotuswebdzine.com/lotusweb/portfolio.php
(我已经将这个问题标记为Python,因为我理解Python代码,因此也欢迎使用Python中的示例!).
我想在wxWidgets中创建一个简单的窗口:
我创建了一个主面板,我将其添加到一个表单中,我将
一个boxsizer与主面板相关联(将它分成两个,水平).
我将LeftPanel添加到boxsizer,
我将RightPanel添加到boxsizer,
我创建一个新的boxsizer(垂直)
我创建另一个boxsizer(水平)
我创建一个Notebook小部件
我创建一个Panel并将其放入Notebook(addpage)
我添加了笔记本到新的boxsizer(垂直一个)
我在水平测量器中添加垂直
测量器
我将水平测量器与RightPanel相关联我将左和右面板添加到主测量器.
这不起作用......
也许我错过了一些东西(约施胶剂心理障碍),但我会喜欢做的是扩展笔记本部件不与水平线在内部使用了垂直分级器(它不反正工作).
所以我的问题是.假设我想在RightPanel中扩展Notebook小部件以占用表单右侧区域的其余部分,我将如何进行此操作?
对于那些了解Erlang的人来说,这就是我到目前为止所拥有的:
mainwindow() ->
%% Create new environment
X = wx:new(),
%% Create the main frame
MainFrame = wxFrame:new(X, -1, "Test"),
MainPanel = wxPanel:new(MainFrame, [{winid, ?wxID_ANY}]),
MainSizer = wxBoxSizer:new(?wxHORIZONTAL),
wxWindow:setSizer(MainPanel, MainSizer),
%% Left Panel...
LeftPanel = wxPanel:new(MainPanel, [{winid, ?wxID_ANY}]),
LeftPanelSizer = wxBoxSizer:new(?wxVERTICAL),
wxWindow:setSizer(LeftPanel, LeftPanelSizer),
wxWindow:setMinSize(LeftPanel, {152, -1}),
%% Right Panel
RightPanel = wxPanel:new(MainPanel, [{winid, ?wxID_ANY}]),
RightPanelVerticalSizer = wxBoxSizer:new(?wxVERTICAL),
RightPanelHorizontalSizer = wxBoxSizer:new(?wxHORIZONTAL),
wxWindow:setBackgroundColour(RightPanel, …Run Code Online (Sandbox Code Playgroud) 在Internet Explorer中是否有任何事件,只要DOM被更改就会被触发?例如:
document.attachEvent("ondocumentchange", function () {
alert("you've just changed DOM!");
});
Run Code Online (Sandbox Code Playgroud)
当我执行时:
document.appendChild(document.createElement("img"));
Run Code Online (Sandbox Code Playgroud)
带有文字的窗口"你刚刚改变了DOM!" 出现.
我尝试使用Javascript在IE6中模拟"高级"CSS选择器(例如+,>,[attr]).但是,要与动态内容一起正常工作,必须在每次更改文档后重新计算它们.
jquery ×2
c ×1
c++ ×1
erlang ×1
events ×1
fancybox ×1
inno-setup ×1
javascript ×1
layout ×1
legacy-code ×1
menu ×1
printf ×1
python ×1
sql ×1
toggle ×1
vi ×1
vim ×1
visibility ×1
visual-c++ ×1
winapi ×1
windows ×1
wpf ×1
wxwidgets ×1