我有一些代码从COM对象(IDirect3D9)调用一个方法,但每次调用都会导致运行时检查失败#0.失败是由ESP在调用过程中未正确保留引起的,因此存在某种堆栈问题(因为COM方法都是如此__stdcall).不寻常的部分是方法签名和环境的简单性.
代码仅使用32位模式构建,使用DirectX SDK(2010年6月)头文件和库,使用MSVC 10(VS 2010 SP1).我重新安装了SDK以确保标头没有损坏,没有运气.
我已经连接了VS'调试器和WinDBG,以及重新启动/更新驱动程序后多次运行代码.问题每次都会发生,并且是相同的.在gflags中启用堆验证(以及大多数其他选项)似乎不提供任何更多信息,也不运行Application Verifier.两者都只报告与弹出窗口相同的错误,或者不久之后导致的段错误.
如果没有调用(返回一个常量值),程序将按预期运行.我对这里可能出现的问题没有想法.
有问题的函数是IDirect3D9::GetAdapterModeCount从D3D8到9的包装器(旧游戏的图形升级项目的一部分)调用的.有关更多常规信息,完整文件在此处.
我已经尝试了以下所有形式的通话:
UINT r = m_Object->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8);
UINT r = m_Object->GetAdapterModeCount(0, (D3DFORMAT)22);
UINT adapter = D3DADAPTER_DEFAULT;
D3DFORMAT format = D3DFMT_X8R8G8B8; // and other values
UINT r = m_Object->GetAdapterModecount(adapter, format);
Run Code Online (Sandbox Code Playgroud)
所有这些都导致检查失败.m_Object是有效的IDirect3D9,以前用于各种其他调用,具体为:
201, 80194887, Voodoo3D8, CVoodoo3D8::GetAdapterCount() == 3
201, 80195309, Voodoo3D8, CVoodoo3D8::GetAdapterIdentifier(0, 2, 0939CBAC) == 0
201, 80195309, Voodoo3D8, CVoodoo3D8::GetAdapterDisplayMode(0, 0018F5B4) == 0
201, 80196541, Voodoo3D8, CVoodoo3D8::GetAdapterModeCount(0, D3DFMT_X8R8G8B8) == …Run Code Online (Sandbox Code Playgroud) 我试图插入到SQL数据库但是我一直收到错误

以下是提到的查询:
str2 = "Insert into [Snaps](Loc_city,Loc_state,Loc_country,Edu_Hist1,Work_Hist1) values (Loc_city= ' " + soap.data[i1].current_location.city.ToString() + "', Loc_state='" + soap.data[i1].current_location.state.ToString() + "', Loc_country='" + soap.data[i1].current_location.country.ToString() + "',Edu_Hist1='" + soap.data[i1].education_history[0].name.ToString() + "', Work_Hist1 ='" + soap.data[i1].education_history[0].school_type.ToString()+"')";
cmd = new SqlCommand(str2,con);
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
请帮忙
我将重新创建一个我创建的游戏引擎.这次我想做得对,所以我对设计模式进行了一些研究,并尝试将各个部分组合在一起以实现我的目标.游戏引擎的想法很简单,但与此同时我不想牺牲可用性.
这是我正在思考的蓝图,让我知道你是否能看到任何垮台,尤其是可扩展性:
class Object
{
public:
string name;
}
class Object3D : public Object
{
public:
int x;
int y;
int z;
}
class Object2D : public Object
{
public:
int x;
int y;
}
class cube : public Object3D
{
cube() : x(0), y(0), z(0), name("cube") {}
}
class square
{
...
}
int main()
{
SGL Engine(paramters);
c = cube();
s = square();
Engine->Lib3D->AddCube(&c, "cube");
Engine->Lib2D->AddSquare(&s, "square");
Engine->Input->keyboard(&kbevent);
while(Engine->running())
{
if (x)
Engine->Draw("cube");
else
Engine->Draw("square");
}
}
void …Run Code Online (Sandbox Code Playgroud) 在学习访谈时,我只想分享一个关于如何在javascript中生成集合的所有唯一子集的示例.
c++ ×2
algorithm ×1
asp.net ×1
c# ×1
com ×1
javascript ×1
sql-server ×1
stack-smash ×1
subset ×1