zoukankan      html  css  js  c++  java
  • void指针及指针的多次赋值的理解

    1、void指针的类型转换

    int A::functionCommamd(const DWORD _from,const DWORD _to,const DWORD Event_type,void * _data,void* _ret)
    {
    	if (CMD_XXX_NUM==Event_type)
    	{
    		/*PropertiesPtr mProp= *(Properties::PropertiesPtr*)_data;
    		std::string data = mProp->getValue("Data", "");
    		Json::Reader oReader;
    		Json::Value oValue;
    		char data = oValue["event_info"]["pic_url"]["vehicle_pic_url"].asString().c_str();*/
    		CHAR*strdata = (char*)_data;
    		std::string* strret = (std::string*)_ret; //指针变量,进来的时候传数据长度,返回获取的图片URL
    		int iBufSize = atoi((*strret).c_str());
    		return GetCapturePicUrl(strdata, iBufSize, *strret);
    	}
    	return 0;
    }
    

      调用的时候,传入void指针的类型是什么,什么就强制转换成什么类型的:

    funcCommand(1, 2, 3, pstEventInfo->pPlatePicData.get(), &strPlateRet);
    strPlateRet虽然为传出参数,也可传入一个参数。但是最好在_data那里传个结构体指针。

    2、在一个栈里定义了一个指针,希望两次调用通过修改指针指向内存的数据,来实现不同的函数调用传入不同数据,可能有时候没修改成功,就传了。两次调用加sleep函数,不过最好定义两个指针。

  • 相关阅读:
    Qt使用第三方库3rdparty
    Qt5.5以来对Network的改进(包括对SSL的功能支持,HTTP的重定向等等)
    ddd
    C# ICSharpCode.SharpZipLib
    OWIN
    C#/.NET code
    ABP启动配置
    Oracle表空间及分区表
    Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用
    WebAPI使用多个xml文件生成帮助文档
  • 原文地址:https://www.cnblogs.com/huangfuyuan/p/13289119.html
Copyright © 2011-2022 走看看