解决方案 »
- 用VS2010打开VS2005做的WinForm程序,出现339个错误,求帮帮啊!
- 求解释,MD5.hexdigest
- 关于IEnumerable<IGrouping<int, List<int>>> 的问题。
- WindowsCE4.1的键盘输入和windows的键盘输入有什么区别
- “修改密码”功能
- 求助!!!我的想法是通过textbox输入表名,然后调用存储过程,动态建立表,可是没有成功,希望高手指教!!!!
- OleDb操作Excel文档的问题(如何获取指定字段上的某个值所在的行号)
- 求一个截字符串的方法
- dropdownlist 无刷新联动
- Scale Value赋值
- Winform调用Office的Com组件对Word操作,遇到个别机器安装了WPS的话,会出现异常
- 学习.net求高人指点。不胜感激。
1. stdcall cdecl fastcall等函数调用约定不匹配。
2. dllimport转换时,C#和C++对应的类型不匹配
实在不行把api贴出来看看
#ifndef UNITYINTERFACE_API
#define UNITYINTERFACE_API extern "C" __declspec(dllexport)
#endif//DEFINE INTERFACE METHODS//Nui Context Management
UNITYINTERFACE_API bool NuiContextInit(bool twoPlayer);
UNITYINTERFACE_API void NuiUpdate();
UNITYINTERFACE_API void NuiContextUnInit();
//Get Methods
UNITYINTERFACE_API void GetSkeletonTransform(int player, int joint, OUT KUVector4* SkeletonTransform);
UNITYINTERFACE_API byte* GetTextureImage(OUT int* size);
UNITYINTERFACE_API byte* GetDepthImage(OUT int* size);
UNITYINTERFACE_API void GetCameraAngle(OUT float* angle);
//Set Methods
UNITYINTERFACE_API bool SetCameraAngle(int angle);还需要cpp文件吗?
C#脚本
//NUI Context Management
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern bool NuiContextInit(bool twoPlayer);
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern void NuiUpdate();
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern void NuiContextUnInit();
//Get Methods
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern void GetSkeletonTransform(int player, int joint, ref SkeletonTransform trans);
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern IntPtr GetTextureImage(ref int size);
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern IntPtr GetDepthImage(ref int size);
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern void GetCameraAngle(ref float angle);
//Set Methods
[DllImport("/Assets/Plugins/KinectPluginForUnity.dll")]
public static extern bool SetCameraAngle(int angle);
经测试判断是dll中所有函数都调用失败~
但是在Unity3d中,Play运行没有问题,打包之后资源文件中也有dll,运行打包之后的exe,执行调用dll中方法的一些操作都无效了,这会是什么原因呢?
Assets目录如下:MyModel,MyScript,Plugins,Scene。打包之后,资源自动会放到和生成的exe文件同目录下的ProjectName_Data目录,在这个目录下有Managed,Mono,Plugins(dll存在),Resources4个文件夹,mainData,PlayerConnectionConfigFile,sharedassets0.assets3个文件。
还有那个init函数的参数,把bool改为int,再试试