小编ssu*_*ube的帖子

COM方法调用意外破坏了堆栈

我有一些代码从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)

c++ com stack-smash

0
推荐指数
1
解决办法
218
查看次数

插入查询时出错

我试图插入到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)

请帮忙

c# sql-server asp.net sql-server-2005 sql-server-2008

-1
推荐指数
1
解决办法
104
查看次数

游戏引擎开发

我将重新创建一个我创建的游戏引擎.这次我想做得对,所以我对设计模式进行了一些研究,并尝试将各个部分组合在一起以实现我的目标.游戏引擎的想法很简单,但与此同时我不想牺牲可用性.

这是我正在思考的蓝图,让我知道你是否能看到任何垮台,尤其是可扩展性:

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)

c++

-2
推荐指数
1
解决办法
1380
查看次数

在javascript中生成集合的所有子集

在学习访谈时,我只想分享一个关于如何在javascript中生成集合的所有唯一子集的示例.

javascript algorithm subset

-5
推荐指数
1
解决办法
2171
查看次数