我正在尝试DLLImport函数simxGetObjects
从remoteApi.dll
v-rep软件。这里是链接到该函数描述: http://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctions.htm#simxGetObjectsC#Dllimport - 指针接收数组的指针
,这里是从上面的链接该功能的简要说明:
描述:中检索对象的给定类型的把手,或所有类型的(即,所有对象处理)
ç简介: simxInt simxGetObjects(simxInt clientID的,simxInt的objectType,simxInt * objectCount,simxInt ** objectHandles,simxInt一个operationMode)
C参数:
clientID:客户端ID。请参阅simxStart。
的objectType:对象类型(sim_object_shape_type,sim_object_joint_type等,或用于sim_handle_all任何类型的对象
objectCount:指针的值,将接收检索的句柄数
objectHandles:指针指向一个将接收对象句柄数组的指针,该数组在调用下一个远程API函数前保持有效 operationMode:远程API函数操作模式推荐操作mod E对于这个功能simx_opmode_oneshot_wait
这里就是这样,我将其导入(simxGetObjects
功能):
[DllImport("remoteApi.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int simxGetObjects(int clientID, string objectType, IntPtr objectCount, ref IntPtr objectHandles, string operationMode);
,这里是我如何我称之为:
int intClientID = simxStart("127.0.0.1", 19999, true, true, 5000, 5);
IntPtr intptrObjectCount = IntPtr.Zero;
IntPtr intptrObjectHandles = IntPtr.Zero;
simxGetObjects(intClientID, "sim_handle_all", intptrObjectCount, ref intptrObjectHandles, "simx_opmode_oneshot_wait");
它不显示任何错误,但是intptrObjectCount和intptrObjectHandles变量都为零。
我真的很感谢有人能帮助我。
什么是simxGetObjects的返回值? – walruz
返回值是一个标志,显示函数的状态是否成功。但是,实际的输出是我需要获得的'objectCount'和'objectHandles'。它基本上调用在后台运行的软件,并检索场景中所有对象的编号和句柄。 – NESHOM
返回值(我的意思是价值本身)可能有助于理解你做错了什么。 – walruz