编辑:当然,在工作了一个小时后立即发布在这里,我发现了愚蠢的错误......
我在尝试#include <d3dx9.h>
项目时遇到了编译器错误.我收到"致命错误C1083:无法打开包含文件:'d3dx9.h':没有这样的文件或目录".
$(DXSDK_DIR)Include;$(IncludePath)
"和" $(DXSDK_DIR)Lib\x86;$(LibraryPath)
",并且环境变量%DXSDK_DIR%
指向C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\
预期的.$(DXSDK_DIR)include
在附加包含目录中列出d3dx9d.lib
包含在Debug中,d3dx9.lib
包含在Release配置中.d3dx9.h
并建议文件中的类型和函数名称(并且不包含在我正在#include
处理的任何其他内容中),因此Intellisense似乎可以找到它.关于我忘记什么或者还有什么可以尝试的任何建议?
谢谢
我正在尝试编写一些自动化来打开一系列窗口(非隐藏,非恶意)并且我不希望它们在打开时窃取焦点.问题是当每个窗口打开时,它会窃取焦点,阻止我在后台运行时工作.这是我在循环中执行以打开各种窗口的代码:
using (Process proc = new Process())
{
proc.StartInfo.FileName = filename;
proc.StartInfo.Arguments = arguments;
proc.Start();
Thread.Sleep(1000);
if (!proc.HasExited)
{
proc.Kill();
}
}
Run Code Online (Sandbox Code Playgroud)
如何在没有焦点的情况下使这些打开,以便在自动化运行时我可以做其他事情?
附录:
执行上述代码的程序是一个简单的控制台应用程序.我开始的流程是GUI应用程序.出于测试/设计目的,我目前正在尝试使用iexplore.exe
具有不同参数的Internet Explorer()的重复实例.
我会运行它并继续执行其他不相关的工作,而这在后台运行.我也不希望焦点返回到父应用程序.基本上,.exe
当我到达我的办公桌时,我会运行它,并切换到其他窗口做其他工作,忽略原始程序及其子进程,直到它完成.
最近,我写了很多看起来像这样的代码:
List<MyObject> myList = new List<MyObject>();
...
for(int i = 0; i < myList.Count; ++i)
{
if(/*myList[i] meets removal criteria*/)
{
myList.RemoveAt(i);
--i; //Check this index again for the next item
//Do other stuff as well
}
}
Run Code Online (Sandbox Code Playgroud)
而我只是变得有点偏执,可能列表在删除时不保留对象顺序.我不清楚C#规范是否足够清楚.有人可以证实我或者不是在问这个模式有问题吗?
编辑:也许我应该澄清,上面是一个非常简单的例子,如果项目需要删除,会发生更多的事情,所以我认为List<T>.RemoveAll()
这里不太适用.虽然这是一个很好的功能.我在if()
上面的块中添加了一条评论,特别提到了这一点.
我正在尝试编写一个非常简单的着色器,它可以为适用的对象添加随机闪烁.我想这样做的方法是在像素着色器中为像素值添加一个白色的随机阴影(R = G = B).
它似乎noise()
不像我希望的那样工作:
float multiplier = noise(float3(Input.Position[0], Input.Position[1], time));
Run Code Online (Sandbox Code Playgroud)
它给我"错误X4532:无法将表达式映射到像素着色器指令集",指的是调用noise()
.
由于我不知道在着色器调用之间保留数字的方法,我认为我不能只根据渲染前传入的种子编写一个简单的随机数生成函数.
有没有办法从像素着色器内部生成一个随机数?如果有办法,怎么样?
我正在研究一种3D网格解析工具.目前,我正在尝试确定3D空间中两个全等三角形之间的旋转 - 我们称之为ABC
和DEF
.
我能翻译点A
和D
相同的位置,现在需要确定的旋转,将放置DEF
在同一平面上,并在相同的方向ABC
,但我不熟悉不够用数学来做到这一点.谁能告诉我如何解决这个问题?
我一直在想使用的交叉产品AB
,并DE
确定旋转轴,则点积求的角度,然后又做了四元数出其中; 但我不知道这是否总能正确对齐它们.
我是否误解了上述想法?它总是会对齐三角形吗?如果不能,找到轮换的另一种方法是什么?
我正在使用WPF和C#编写触摸表的应用程序.(而且,我并不十分熟悉WPF.在所有.)我们怀疑我们没有得到我们从API"请求",所以我想我自己写的FPS计算器帧率.我知道数学是基于内部时钟来计算的,我只是不知道如何在Windows/WPF API中访问一个计时器.
访问计时器需要哪些库/命令?
我正在为iOS设备编写一些Touch输入代码,需要确定滑动的移动是相对于屏幕中心顺时针还是逆时针移动.
使用position
和deltaPosition
触摸的,我可以从屏幕到使用点积这些点的中心计算向量之间的角度,但是这并没有给我签名的角度来决定它是否是CW与否.
如何判断滑动中心周围的哪个方向?
我正在开发一个相当复杂的项目,在该项目中我正在使用 C++/CLI 的项目访问用普通旧式 C++ 编写的类。它是一个 Windows 窗体 GUI 项目,使用许多与其(非 CLI)C++ 姐妹项目相同的功能。
在我试图调整以在两种环境中工作的一门课程中,我使用此功能轮询按键:
inline bool IsKeyDown(unsigned char ch) const {
return (GetAsyncKeyState(ch) & (1u << 15)) != 0;
}
Run Code Online (Sandbox Code Playgroud)
我同时收到“无法解析的令牌”和“无法解析的外部符号”错误
"extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z) referenced in function "public: bool __clrcall Engine::InputManager::IsKeyDown(unsigned char)const " (?IsKeyDown@InputManager@Engine@@$$FQBM_NE@Z)
显然,这个问题与 CLI 友好的实现有关,GetAsyncKeyState()
但我不确定需要做什么不同。谁能指导我如何解决这个问题?该函数在我的非 CLI 环境中正常运行(并且已经运行了几个月)。我对 CLI 东西非常陌生,所以任何帮助都会很棒,而且任何帮助都不会太具体。
如果有帮助,我正在使用 Visual Studio 2010 并使用/clr
参数(not:pure
或:safe
)进行编译。
c# ×3
c++ ×2
directx-9 ×2
3d ×1
automation ×1
collections ×1
frame-rate ×1
generics ×1
hlsl ×1
ios ×1
pixel-shader ×1
process ×1
random ×1
rotation ×1
touch ×1
windows ×1
wpf ×1