dll-lib开发
zbird1988
吾志所向,一往无前,愈挫愈奋,再接再厉!
展开
-
DLL和exe里的malloc和free不能混用
一个模块一个堆,一个线程一个栈。dll里malloc的内存,在exe里free会出错。CRT(C运行时期库)不是使用进程缺省的堆来实现malloc(new中调用malloc)的,而是使用一个全局句柄HANDLE _crtheap来分配内存的。这个_crtheap是在XXXCRTStartUp(CRT提供的进口点函数)中创建的。 由于CRT静态连接,则楼主的DLL里有也有一个CRT,转载 2013-10-07 20:53:44 · 834 阅读 · 0 评论 -
制作动态链接库需要注意的
制作动态链接库:导出dll时,如果是对类的到处,需要注意的是:1.导出宏不能带extern "C",因为c的方式中没有类的概念2.导出宏放在class和类名之间,不能放到class前面。--而单独导出一个函数时(不含类的),导出宏需要放在返回类型前面。#ifdef MMAIL_DLL_EXPORTS//#define MDLLEXPORT extern "C" __declspec原创 2013-09-12 18:17:59 · 1373 阅读 · 0 评论