朋友们有空的话帮我看两个小问题。我现在在镇上的网吧,时间不多。是关于内联函数与内存释放的
gnhao 2008-06-01 08:23:24 内联函数
code.h
#ifndef DLL_API
#define DLL_API _declspec(dllimport)
#endif
class DLL_API test
{
inline void t()
{
//do......
}
}
code.cpp
#define DLL_API _declspec(dllexport)
#include "code.h"
在code.h定义内联函数编译时有无法找到符号错误!
1我写一个DLL。但是在头文件中不能加内联啊?有什么办法?
另外。我要在一个线程中调用一个类的实例方法
所以我定义了一个结构
typedef struct
{
test*test_obj;//传指针过去
HANDLE completion_port;//完成端口句柄
}WORK_THREAD_PARAM,*LPWORK_THREAD_PARAM;
然后在test类的一个方法中
LPWORK_THREAD_PARAM workThreadParam=new WORK_THREAD_PARAM();//这里的内存在线程中如何释放?不能不能new啊。这个方法退出后线程才开始。如果不new刚线程无法得到值。但在线程中不能delete 。因为会让test * test_obj为空。但在线程中那个NEW出来的东西用不着了啊。!
workThreadParam->completion_port=hCompletionPort;
workThreadParam->>test_obj=this;
DWORD WINAPI test::WorkThread(LPVOID lpParameter)
{
LPWORK_THREAD_PARAM workParam=(LPWORK_THREAD_PARAM)lpParameter;
HANDLE hCompletion=workParam->completion_port;
test*test_obj;=workParam->test_obj;
//下边就可以调用了。但如果delete的话刚不行
test_obj->(实例方法)
}
问题一:如何在dll项目中定义内联函数
问题二:怎样释放那个new出来的内存啊?