在调试时,ocx里的函数可以调用dll里的函数,但是,参数传递不对。通过察看变量值,发现,调用dll里的函数后,dll里的函数的形参得到的值全是0xcccccccc。这是怎么回事啊???
先感谢各位大虾了!

解决方案 »

  1.   

    比如:
    ocx里:
    //ocx1.ocx
    int WINAPI DllFun1(BYTE* pbByte1);//这是在dll里的函数接口int OcxFun1()
    {
        BYTE pbTst[] = "String";
        DllFun1(pbTst);
    }
    dll里:
    //dll1.dll
    int WINAPI DllFun1(BYTE* pbByte1)
    {
        //...
        int iLen = strlen((char*)pbByte1);//调试到这里,出现“异常”,非法访问
    }
    -----------------------------------
    ocx工程和dll工程都能正常编译,生成ocx和dll文件
    调试的时候老出错,发现,不能将pbTst传到dll里的DllFun1函数
    在DllFun1里,pbByte1的值为0xcccccccc
    说明,字符串“String”的地址没有被正确的传给DllFun1函数。这是为什么阿???
      

  2.   

    把你实际的代码贴出来看看,尤其是DLL的导出函数原型
      

  3.   

    0xcccccccc?
    未初化的变量?