[阅读: 748] 2005-05-26 13:46:35
CallerLength=GetModuleFileName(NULL,CallerName,MAX_PATH);
HANDLE h=OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,L"Caller");
char *p=(char *)MapViewOfFile(h,FILE_MAP_ALL_ACCESS,0,0,0);
int i=0;
if(CallerLength!=0)
for(i=0;i<CallerLength;i++)
p[i]=CallerName[i];
p[i]='\0';
UnmapViewOfFile(p);
CloseHandle(h);
以上代码属于DLL的一个函数,目的是在DLL中获取调用者的名字并存入映射区。 但加载DLL后,程序一旦调用DLL中的这个函数,马上自动关闭;只要去掉其中对p[i]赋值的语句,运行很正常,但无法实现目的。
请教什么原因? 如何解决?