中国开发网: 论坛: 程序员情感CBD: 贴子 140773
mhappy
请教关于DLL和内存映射的技术问题。。。
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]赋值的语句,运行很正常,但无法实现目的。
请教什么原因? 如何解决?

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录