我知道已经有很多关于这方面的问题,但我找不到我想要的东西。
我正在尝试将典型的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在整个程序的其余部分都能正常工作。
最奇怪的是,我确信几周前我没有遇到任何问题。 :/