访问冲突将LPD3DDEVICE9传递给动态加载的DLL

时间:2012-04-13 20:38:02

标签: c++ dll direct3d access-violation

我知道已经有很多关于这方面的问题,但我找不到我想要的东西。

我正在尝试将典型的LPD3DDEVICE9 d3ddev变量传递给动态加载的DLL中的函数,并且它一直给我一个访问冲突。用NULL替换d3ddev会阻止违规发生。

以下是我从外部定义的功能:

typedef UINT (__cdecl *UINT_LPDLL_GENERATEMESH)(__in LPOBJATTRS,__in LPDIRECT3DDEVICE9,__in DWORD dwOptions,__out LPD3DXMESH*);

从里面开始:

UINT __declspec(dllexport) GenerateMesh(__in LPOBJATTRS,__in LPDIRECT3DDEVICE9,__in DWORD dwOptions,__out LPD3DXMESH*);

为了清楚起见,这是我的电话:

iSubmeshCount = (mhMyMesherHost.GenerateMesh(&objAttrs,d3ddev,D3DPOOL_MANAGED,&lpMyMesh));

有人知道我为什么会遭到访问侵犯吗? 同样,请记住,用NULL替换d3ddev会阻止违规发生。此外,d3ddev在整个程序的其余部分都能正常工作。

最奇怪的是,我确信几周前我没有遇到任何问题。 :/

0 个答案:

没有答案