小编use*_*638的帖子

编组LPSTR和浮动时的不平衡堆栈

我正在使用platform/invoke并且我正在尝试将浮点数LPSTR和int编组到c ++函数中并且我得到以下错误:调用PInvoke函数'Game!Game.Graphics :: CreateModel'使堆栈失衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.检查PInvoke签名的调用约定和参数是否与目标非托管签名匹配.这是我的c#代码:

public struct Graphics
        {
        [DllImport(@"Graphics.dll", EntryPoint = "StartGL")]
        public static extern void StartGL();
        [DllImport(@"Graphics.dll", EntryPoint = "CreateModel")]
        public static extern void CreateModel([MarshalAs(UnmanagedType.LPStr)]string ModelPath, [MarshalAs(UnmanagedType.LPStr)]string TexturePath,float xposh, float yposh, float zposh, float rotAngleh, float xroth, float yroth, float zroth);
        [DllImport(@"Graphics.dll", EntryPoint = "rotateModel")]
        public static extern void rotateModel(int id,float rotAngle,float x, float y, float z);
        }
    class Program
    {
        static void Main(string[] args) 
        {
            OpenGL();
        }
        static void OpenGL()
        {
            Graphics.CreateModel("box.obj","asd.png",0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); …
Run Code Online (Sandbox Code Playgroud)

c# c++ pinvoke

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

标签 统计

c# ×1

c++ ×1

pinvoke ×1