可不可以动态生成dll文件!

时间:2022-12-04 08:32:55
我想在程序执行期间,动态的生成一个dll文件,就是说在程序运行的时候要读取一些数值,然后把这些数值固定的写入dll文件中,然后进行编译,然后在这个程序中再
动态加载。不知道能不能实现,如果能,哪位能指点一下小第,不甚感激!

17 个解决方案

#1


行,只要你汇编够牛,不过你的问题根本上不需要动态生成dll,只要写入配置文件不就可以了,

#2


那我用汇编写,怎么的一个方法,和思路,请具体说说

#3


此路不通!!
劝你找其他方法。

想要什么目的???

#4


不太现实。

不过有个办法。如果你仅仅是想用来存储一些配置信息的话,可以通过读取修改DLL的资源来实现,不过麻烦,而且很无聊。

#5


o ,我的意思是我再读取客户端的信息返回服务器端,然后把这个信息作为一个常量,写在
针对这个客户端而生成的dll中,然后在程序控制下自动编译成dll.这样不就少掉了把这个客户端的信息写到注册表或者某个文件里了吗?

#6


刚才没说明白,我的意思是:
   
    得到某个客户端的信息,然后吧这段信息动态编译成dll,可能因为客户端的信息不同,所以这个dll文件就不同了,所以需要动态生成。这样就省去了写入注册表的麻烦了。保密功能也就加强乐呀。

#7


可以的JEDI VCL有一个组件可以实现这个功能

#8


写进数据库吧!

#9


这样不是很无聊????那你直接用TIniFile类来实现把。不过文件扩展名改为DLL

#10


你的tinifile只是静止的让别的程序读的东西,我写成dll还想通过dll提供某个方法供我调用呢。
上边有位兄弟说jedi 有个组件,请具体说说吧。
如果用汇编,什么思路。我想试试

#11


也不用汇编,无非就是在dll中增加一些不同的信息嘛,你可以在给该dll增加一个节区写入内容,然后让调用程序自己读就是了。不过我不大理解你的“动态成生一个dll”的意思,是原来根本不存在这个dll还是已经存在了,只是用程序修改其内容。
若是前者就有点困难,因为用你的程序编译连接一个dll文件......当然可以把已经编译好的dll加到你的exe中(增加新节区),倒时候修改完再另存出来就OK了。
反正我觉得这样有点得不偿失,没什么必要。

#12


没有什么困难,将DLL文件当成一个数据文件在指定的位置写入就行了

#13


楼主的意思就是要动态编译出来一个DLL,如果是这样,你用汇编写,并且向Anders Hejlsberg请教一下,保证你的编译程序可以达到国内最优秀的水准

#14


不太现实?楼主别入魔了

#15


就是,编DLL时常量用个特别的值,编译完了搜索这个值在文件中的位置,很好改的
以前在DOS下就常用这个方法为用户定做EXE

#16


可以试一试流文件

#17


明显是进入了误区,在技术上写个编译器不明显比你这软件本身要复杂的多吗?

PE文件中很多地方可以用于填充数据的,需要动态编译吗?或者更简单的思路也多的是!

#1


行,只要你汇编够牛,不过你的问题根本上不需要动态生成dll,只要写入配置文件不就可以了,

#2


那我用汇编写,怎么的一个方法,和思路,请具体说说

#3


此路不通!!
劝你找其他方法。

想要什么目的???

#4


不太现实。

不过有个办法。如果你仅仅是想用来存储一些配置信息的话,可以通过读取修改DLL的资源来实现,不过麻烦,而且很无聊。

#5


o ,我的意思是我再读取客户端的信息返回服务器端,然后把这个信息作为一个常量,写在
针对这个客户端而生成的dll中,然后在程序控制下自动编译成dll.这样不就少掉了把这个客户端的信息写到注册表或者某个文件里了吗?

#6


刚才没说明白,我的意思是:
   
    得到某个客户端的信息,然后吧这段信息动态编译成dll,可能因为客户端的信息不同,所以这个dll文件就不同了,所以需要动态生成。这样就省去了写入注册表的麻烦了。保密功能也就加强乐呀。

#7


可以的JEDI VCL有一个组件可以实现这个功能

#8


写进数据库吧!

#9


这样不是很无聊????那你直接用TIniFile类来实现把。不过文件扩展名改为DLL

#10


你的tinifile只是静止的让别的程序读的东西,我写成dll还想通过dll提供某个方法供我调用呢。
上边有位兄弟说jedi 有个组件,请具体说说吧。
如果用汇编,什么思路。我想试试

#11


也不用汇编,无非就是在dll中增加一些不同的信息嘛,你可以在给该dll增加一个节区写入内容,然后让调用程序自己读就是了。不过我不大理解你的“动态成生一个dll”的意思,是原来根本不存在这个dll还是已经存在了,只是用程序修改其内容。
若是前者就有点困难,因为用你的程序编译连接一个dll文件......当然可以把已经编译好的dll加到你的exe中(增加新节区),倒时候修改完再另存出来就OK了。
反正我觉得这样有点得不偿失,没什么必要。

#12


没有什么困难,将DLL文件当成一个数据文件在指定的位置写入就行了

#13


楼主的意思就是要动态编译出来一个DLL,如果是这样,你用汇编写,并且向Anders Hejlsberg请教一下,保证你的编译程序可以达到国内最优秀的水准

#14


不太现实?楼主别入魔了

#15


就是,编DLL时常量用个特别的值,编译完了搜索这个值在文件中的位置,很好改的
以前在DOS下就常用这个方法为用户定做EXE

#16


可以试一试流文件

#17


明显是进入了误区,在技术上写个编译器不明显比你这软件本身要复杂的多吗?

PE文件中很多地方可以用于填充数据的,需要动态编译吗?或者更简单的思路也多的是!