小编cco*_*ote的帖子

Visual Studio将其视为无效的指针**

我的代码发生了一些奇怪的事情.我正在使用一个应该完美工作的库(来自开源Netgen网格器的nglib).我可以链接并包含所有内容,但我无法使用此库:

我想要使​​用的对象是 Ng_Mesh* mesh = Ng_NewMesh ();

Ng_NewMesh()方法是:

   DLL_HEADER Ng_Mesh * Ng_NewMesh ()
   {
      Mesh * mesh = new Mesh;  
      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
      return (Ng_Mesh*) (void*) mesh;
   }
Run Code Online (Sandbox Code Playgroud)

当我去当地人时,它被视为void**指的*mesh是一个void*.这不是NULL因为我可以为这个对象添加点和其他东西,但是对于一些函数,我得到一个例外:

System.AccessViolationException: 尝试读取或写入受保护的内存.这通常表明其他内存已损坏.

at nglib.Ng_GetPoint(Void** , Int32 , Double* )
atForwardModelingPlugin.CustomMeshVol3D.tesselate(CustomMeshVol3D* )

nglib.Ng_GetPoint应该有作为(Ng_Mesh*, Int32, Double*)解释这个例外的参数.

我不知道为什么会发生这种情况.

c++ pointers visual-studio-2008

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

标签 统计

c++ ×1

pointers ×1

visual-studio-2008 ×1