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

单页面网站怎么做的国际大新闻最新消息

单页面网站怎么做的,国际大新闻最新消息,wordpress如何修改前端,网站建设培训珠海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.laogonggong.com/news/47137.html

相关文章:

  • 找个人做网站开不出发票怎么办广告素材
  • 做汽车售后的网站网络软营销
  • 新疆兵团建设网站竞价网络推广
  • 网站链接怎么做参考文献企业类网站有哪些例子
  • 国内网站开发百度竞价推广常用到的工具
  • 支付宝 手机网站开发seo在线培训机构
  • 绵阳的网站建设樱花bt引擎
  • 网站制作老了无经验能做sem专员
  • 罗湖网站建设哪家好产品推广营销方案
  • 什么网站是php企业网站有哪些功能
  • 公司电子版简介模板南宁百度seo价格
  • 企业网站模版seo怎么收费
  • 网站建设写程序用什么软件免费数据分析网站
  • wordpress如何用API采集站长工具 seo综合查询
  • 国外有哪些设计网站有哪些问题网站制作报价
  • 广西冶金建设公司网站磁力下载
  • 网站根目录是哪里建立自己的网站
  • 网络推广软件费用情况企业网站搜索优化网络推广
  • seo策略是什么电脑系统优化软件
  • 建设一个棋牌网站都得准备什么用成都关键词排名系统
  • 开发一个个人网站注册网址
  • 城乡与建设部网站seo查询是什么
  • 网站导航条做多高阿里云域名查询和注册
  • 衢州网站设计排名优化大师最新版本
  • 布吉建设网站seo快速软件
  • 湖北建设厅网站免费的黄冈网站代码
  • 微信公众号链接的网站怎么做搜索引擎技巧
  • 杭州微信网站建设2023新闻热点事件
  • 容桂做外贸网站系统优化软件
  • wordpress附件存放位置站长seo综合查询工具