: 我在主程序里面申明了UERIN这个变量 放在UNIT1这个单元里面 然后做了一个DLL 这个DLL也调用了UNIT1这个单元  问题就出来了 DLL肯定是先于主程序释放掉 USERIN这个也就释放了 而等到主程序关闭的时候就出错 我想让DLL调用UERIN 但又不出错  请问怎么办?

解决方案 »

  1.   

    在传送的时候用function name(uerin:type);stdcall就可以了吧?不知道是不是这个意思
      

  2.   

    我不太明白你说的意思  我的意思是如何使用主程序的设置好的变量 但不能出错(主要是DLL随时会释放)
      

  3.   

    是不是在DLL中要用到主程序中的变量值?
      

  4.   

    那你声明Dll中的函数是使用的是哪一类型的参数呀?是不是我上面给你的那种?
      

  5.   

    我大致明白了 但新的问题又出来了我在DLL的PROJECT里面有了个函数Function Setpar(UserName: string;SysInfo: TGSPSystemInfo):string;stdcall;
    begin
      UserName := SysInfo.GSPTempString.Strings[0];
      Result := UserName;
    end;我的目的是想把主程序中的USERNAME 附一个值  但函数执行了以后 我用SHOWMESSAGE(USERNAME)是空的 但我这个函数SETPAR里面用SHOWMESSAGE是有字符的 这是怎么回事啊 我该怎么把值传过去啊
      

  6.   

    在主程序中,uerin:=setpar();
    把你的showmessage(username)放到dll中看一下有没有值,