当前位置: 首页 > news >正文

男朋友说是做竞彩网站维护的wordpress添加下载页

男朋友说是做竞彩网站维护的,wordpress添加下载页,深圳seo优化公司,中国工厂网站官方网站linux一个进程只有一个堆,不要考虑这些问题,但是windows一个进程可能有多个堆,要在对应的堆上释放。 一, MT改MD 一个进程的地址空间是由一个可执行模块和多个DLL模块构成的,这些模块中,有些可能会链接到…

linux一个进程只有一个堆,不要考虑这些问题,但是windows一个进程可能有多个堆,要在对应的堆上释放。

一, MT改MD

一个进程的地址空间是由一个可执行模块和多个DLL模块构成的,这些模块中,有些可能会链接到C/C++运行库的静态版本,有些可能会链接到C/C++运行库的DLL版本。当使用运行库的DLL版本时,由于dll加载到进程中只会在地址空间中存有一份,因此共用的是同一个堆。所以将可执行模块和DLL模块统一修改为MD编译,则可以直接实现跨模块之间的内存申请和释放,而不会存在任何问题。

二, DLL提供释放接口

每个模块自己封装好释放对应内存的接口,分配资源的接口和释放资源的接口成对封装吧,然后外部模块调用就好了。

三, 使用主进程堆申请和释放内存

如果非要A模块申请的内存,B模块来释放,并且A模块还没有对应的接口,那就大家都使用一个堆就好了,申请和释放都用GetProcessHeap()指定好使用主进程堆。
DLL:


```cpp
void* __stdcall Test(int *len)
{void* pData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100);if (pData == NULL)return NULL;//使用的是HEAP_ZERO_MEMORY,会自动把内存块的内容都清零//下面这行代码可以不要的memset(pData, 0, 100);char pBuf[] = "十点十分十分十分";memcpy(pData, pBuf, sizeof(pBuf));*len = 100;return pData;
}

可执行程序:

int main()
{HMODULE hLib = LoadLibraryA("Dll1.dll");if (nullptr == hLib){std::cout << "LoadLibraryA fail, error:" << GetLastError() << std::endl;return 0;}Fun fun = (Fun)GetProcAddress(hLib, "Test");if (nullptr == fun){std::cout << "GetProcAddress fail, error:" << GetLastError() << std::endl;return 0;}int nLen = 0;char *pData = (char*)fun(&nLen);std::string strTemp(pData, nLen);HeapFree(GetProcessHeap(), 0, pData);std::cout << strTemp << std::endl;return 0;
}

windows允许一个进程中有多个heap,那么这样就需要指明一块内存要在哪个heap上分配,win32的HeapAlloc函数就是这样设计的,给出一个heap的句柄,给出一个size,然后返回一个指针。每个进程都至少有一个主heap,可以通过GetProcessHeap来获得,其它的堆,可以通过GetProcessHeaps取到。同样,内存释放的时候通过HeapFree来完成,还是需要指定一个堆。

http://www.yayakq.cn/news/139845/

相关文章:

  • 南京建设人才网站制定商务网站建设时
  • 乌海网站制作福田网站开发
  • 做的网站太大有一个网站专门做民宿
  • 网站修改标题做内衣的网站
  • 厦门网站建设解决方案网站如何添加js代码
  • 樟木头的建网站公司wordpress 搜索提示
  • 无锡做公司网站的网页制作基础教程第二版cc6照片
  • dedecms 手机网站模板安庆商城网站开发
  • 做高端品牌网站网上开小店怎么开
  • 建设银行网站不能登录不了2023网络舆情案例分析
  • qq说说赞在线自助下单网站做北美市场用哪个网站
  • 哈尔滨网站优化排名软件下载网站哪个比较好
  • 手机网站推广广东省 网站建站
  • seo怎么做教程seo外包服务
  • 青海省公路建设市场信用信息服务网站做百度网站那家好
  • 吉林市做网站公司微信公众号电商网站开发
  • 地方门户网站管理系统网络搭建基础教程
  • 那个餐饮网站北京网站建设方案飞沐
  • 深圳做h5网站制作广西住房建设厅网站首页
  • 如何建设网站平台wordpress七牛云上传图片
  • 同城配送网站建设做推广要知道的网站
  • 商丘哪里教做网站的杭州做网站需要多少钱
  • 怎么让别人访问自己做的的网站做外贸soho网站的公司吗
  • 辽宁沈阳建设工程信息网站珠海网站建设尚古道策略
  • 西部数码网站核验单下载网站城市分站是怎么做的
  • 只做衬衣网站WordPress百度MIP手机主题
  • 建设企业网站企业网上银行登录官网微信网站对接
  • 那里做网站好苏州工业设计公司排行
  • 一个网站做几个关键词郑州今天刚刚发生的新闻
  • 做视频网站赚钱成都计算机培训机构哪个最好