做了个DLL文件,获取电脑的网卡地址(MAC),请教小弟我怎么返回字符串呢

做了个DLL文件,获取电脑的网卡地址(MAC),请问我如何返回字符串呢?
做了个DLL文件,获取电脑的网卡地址(MAC),请问我如何返回字符串呢?返回网卡的字符串啊?

我的函数是这样的
extern "C" __declspec(dllexport) TCHAR* GetMachineMAC()
{
   char *temp=null;
   给temp new了空间后,只能在外部释放内存了,感觉这样不好,还需要其他人在外部释放内存啊,请问有什么好的方法吗?如何正确的返回一段字符串.
}
DLL 返回字符串

------解决方案--------------------
最好的原则是谁分配谁释放

要不修改接口,将需要的参数传递给接口函数可能比较好。
------解决方案--------------------
windows核心编程 某一章 说了 不要从 dll返回 动态分配内存 
例如在c++里分配内存的方式 可以有 malloc new 或API heapalloc,
如果调用方例如为 vb ,如果从你的函数GetMachineMAC返回一个 动态分配内存,但不知道调用的是那个函数来分配内存的,例如从malloc 创建内存 就不能调用delete释放内存

合法的调用规范 ,例如大量的win api 都是由用户提供一个缓冲区来读取数据的,

例如你的函数可以 为这样的原型  BOOL __stdcall GetMachineMAC(__out BYTE * buff);

另外 mac 就是无符号的 char ,你上面用了 TCHAR ,不是很正确