我在宿主程序中定义的一个全局的编译开关,请问在DLL文件中能不能根据该编译开关进行
条件判断(就是该DLL文件能不能响应宿主程序中定义的全局编译开关),我试过好象是不能
得到响应,不知是否正确,望高手点解!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    你的问题是不是类似移植性问题??主程序代码在不同的平台或者版本下进行编译,而DLL要主动适应主程序的变化????是这个吗?
    我能想到的就是这两个东西(主和DLL)同过一个函数先做个对话吧.比如用一个GetInfo之类的函数先判断主程序的版本.之后进行分支吧.
      

  2.   

    编译开关只是用在编译过程,目标代码应该不会保留这个信息吧。
    你可以自己定义一个标志供DLL识别啊。
      

  3.   

    在主程序中根据编译开关设置指示变量。传送给dll就可以了。就像SydPink兄台说的那样做个
    getinfo(info:integer)(假设)。
    然后
    {$IFDEF windows}
    info:=0;
    {$ENDIF}
    {$IFDEF liunx}
    info:=1;
    {$ENDIF}
    getinfo(info);