我编写了一个DLL文件,该DLL中有这样一个函数:
void sample(char **t)
{
*t = new char[10];
}在另外一个程序中,我使用LoadLibrary和GetProcAddress函数使用该函数,即
hinstLib = LoadLibrary("DLL的路径");
typedef void (*FUNTYPE)(char **T);
FUNTYPE pfun = (FUNTYPE)GetProcAddress(hinstLib,"sample");
char *p;
(*pfun )(&p);
这个时候都是正确的,关键是下面的语句
delete []p;
这条语句一运行就出错,难道不可以由DLL申请内存,而由调用者释放内存吗?
请各位高手指教!谢谢!
void sample(char **t)
{
*t = new char[10];
}在另外一个程序中,我使用LoadLibrary和GetProcAddress函数使用该函数,即
hinstLib = LoadLibrary("DLL的路径");
typedef void (*FUNTYPE)(char **T);
FUNTYPE pfun = (FUNTYPE)GetProcAddress(hinstLib,"sample");
char *p;
(*pfun )(&p);
这个时候都是正确的,关键是下面的语句
delete []p;
这条语句一运行就出错,难道不可以由DLL申请内存,而由调用者释放内存吗?
请各位高手指教!谢谢!
解决方案 »
- 请解释一下 std::vector<TaskBarItem> m_TaskBarItem;
- MapX在VC编程中的问题
- 使用libdnet.lib开发编译问题!!!
- 请问截获ip的问题
- 请问,提示转换符顺序非法"#import "C:\Program Files\Common Files\System\ado\msado15.dll" \no_namespace\rename("EOF","ADOEOF")"
- 还是没有解决啊:如何实现用一个程序去控制另一个程序?
- 图片背景
- 每当编译时,就会弹出错误信息:"Doc.cpp不能保存,这个文件正被别的程序使用."
- 如何使工具条中的某一项变灰(无效)?在线等待....
- 请问在ALT的事件中怎么传递ADO的对象如_connectonPtr等(高手请进)
- 求助 求助 关于VC制作界面的问题
- 关于窗口的编译问题
void releasesample(char *t)
{
delete []t;
}
要不就提供成对的函数,一个负责分配,一个负责释放。尽量做到谁分配谁释放。