我有一个我想要准确测量的复选框,所以我可以正确地在对话框上定位控件.我可以轻松地测量控件上文本的大小 - 但我不知道计算复选框大小的"官方"方式以及文本之前(或之后)的间隙.
我刚刚完成了一个Silverlight项目,现在是时候进行一些清理了.我想把我的核心文件放到一个单独的项目中,我将从我的主要Silverlight应用程序中引用它.其中一些类与WPF兼容,我非常希望能够在一个项目中拥有Silverlight/WPF代码.我理想的解决方案是允许多种配置的单个项目.所以,
配置:Silverlight将生成:Company.Controls.Silverlight.dll
配置:WPF将生成:Company.Controls.Wpf.dll
是否可以在同一个文件中通过定义分隔相同的源?
有没有人这样做过?
编辑:我为每个项目创建了一个解决方案,比如MyCompany.Windows.Controls,然后包含2个项目,MyCompany.Windows.Controls和MyCompany.Windows.Controls.Silverlight.除了这两个文件夹,我还有一个"共享"文件夹,其中包含两个项目使用的文件.到目前为止它运作良好:)
正如标题所说的那样.我已经看过继承TextBox,但唯一明智的覆盖是"OnKeyDown",但这只是给我一个Key枚举的密钥(无法使用Char.IsNumeric()).
根据http://www.opengl.org/sdk/docs/man/xhtml/glFramebufferTexture.xml,调用glFramebufferTexture应该类似于:
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureId, 0);
如果API已经知道textureId为什么它也需要知道target(GL_TEXTURE_2D)?这是否意味着在此调用之前应该绑定纹理?即我需要打电话:
glBindTexture(GL_TEXTURE_2D, textureId);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureId, 0);
glBindTexture(GL_TEXTURE_2D, 0);
Run Code Online (Sandbox Code Playgroud)
或者会glFramebufferTexture2D处理一切?
我在Visual Studio 2008中遇到了一个非常严重的问题.偶尔我在调试时右键单击(转到定义,设置下一个语句等),Visual Studio将会死锁并进入无响应模式.
有没有人有同样的问题?有谁知道如何解决它?
编辑:我正在使用带有几个热修复程序的SP1.
请逐一回复.
如果你解释为什么它不是真的那么试着避免一般性陈述并提供特定的例子.
在Visual Studio 2008(和其他人)中,如果查看项目属性,在创建.NET或Silverlight应用程序时,似乎只能有一个程序集名称 - 跨所有配置.我想将我的应用程序编译为:
MyAppDebug - 处于调试模式,只是MyApp - 处于发布模式
有谁知道这是否可能?
编辑:
似乎有些人质疑这个问题背后的推理,所以我会进一步解释一下:
我正在开发一个Silverlight应用程序,当我进入"构建解决方案"时,它会自动上传到我们的测试站点.麻烦的是,测试团队正在测试在线版本,而我正在开发一个新版本.所以,我希望有一个类似.\ MyApp.html的网址,用于QA团队将测试的常规版本,然后.\ MyApp.html?version = debug用于我正在处理的当前版本.
以下代码生成警告C4250.我的问题是,什么是最好的解决方案?
class A
{
virtual void func1();
}
class B : public A
{
}
class C : public A
{
virtual void func1();
}
class D : public B, public C
{
}
int main()
{
D d;
d.func1(); // Causes warning
}
Run Code Online (Sandbox Code Playgroud)
根据我所读到的,应该可以这样做:
class D : public B, public C
{
using B::func1();
}
Run Code Online (Sandbox Code Playgroud)
但是,这实际上并没有做任何事情.我目前解决它的方式是:
class D : public B, public C
{
virtual void func1() { B::func1(); }
}
Run Code Online (Sandbox Code Playgroud)
大家对此有什么看法?
我正在尝试按照此页面上的示例进行操作:
http://www.boost.org/doc/libs/1_40_0/libs/exception/doc/motivation.html
我尝试以下一行的那一刻:
throw file_read_error() << errno_code(errno);
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
error C2440: '<function-style-cast>' : cannot convert from 'int' to 'errno_code'
Run Code Online (Sandbox Code Playgroud)
我如何让它工作?
理想情况下,我想创建这样的东西:
typedef boost::error_info<struct tag_HRESULTErrorInfo, HRESULT> HRESULTErrorInfo;
Run Code Online (Sandbox Code Playgroud)
但我甚至无法得到第一个可行的例子.
编辑:以下是为我生成错误C2440的简要示例:
struct exception_base: virtual std::exception, virtual boost::exception { };
struct io_error: virtual exception_base { };
struct file_read_error: virtual io_error { };
typedef boost::error_info<struct tag_errno_code,int> errno_code;
void foo()
{
// error C2440: '<function-style-cast>' : cannot convert from 'int' to 'errno_code'
throw file_read_error() << errno_code(errno);
}
Run Code Online (Sandbox Code Playgroud) c++ error-handling boost exception-handling visual-studio-2008
给定x,y,z旋转矩阵的以下定义,我如何将其表示为一个完整的矩阵?只需乘以x,y和矩阵?
X轮换:
[1 0 0 0]
[0 cos(-X Angle) -sin(-X Angle) 0]
[0 sin(-X Angle) cos(-X Angle) 0]
[0 0 0 1]
Run Code Online (Sandbox Code Playgroud)
Y轮换:
[cos(-Y Angle) 0 sin(-Y Angle) 0]
[0 1 0 0]
[-sin(-Y Angle) 0 cos(-Y Angle) 0]
[0 0 0 1]
Run Code Online (Sandbox Code Playgroud)
Z轮换:
[cos(-Z Angle) -sin(-Z Angle) 0 0]
[sin(-Z Angle) cos(-Z Angle) 0 0]
[0 0 1 0]
[0 0 0 1]
Run Code Online (Sandbox Code Playgroud)
编辑:我有一个单独的旋转类,其中包含x,y,z浮点值,我稍后将其转换为矩阵,以便与其他平移/缩放/旋转结合使用.
从这里的答案来看,我可以假设,如果我做了类似的事情:
旋转; rotation.SetX(45); rotation.SetY(90); rotation.SetZ(180);
那么旋转应用的顺序实际上非常重要吗?或者可以安全地假设在使用旋转类时,您接受它们是以x,y,z顺序应用的吗?