日期:2014-05-18  浏览次数:20852 次

dll与语言无关?
dll与语言无关?怎样查看一个DLL是用什么语言写的?

------解决方案--------------------
我觉得还是和语言有关
C++:可以开发函数式DLL,也就是WIN32 API式的DLL 
也可以开发COM式的DLL

VB:只可以开发COM式的DLL

.NET:可以开发WIN32 API DLL和COM之外的第三种格式


------解决方案--------------------
探讨
最重要的是DLL的本质,是不是二进制,不同语言DLL是不是运行于不同的平台?

------解决方案--------------------
dll不过是一种符合PE文件格式符合windows动态链接机制的文件而已,和用什么语言来实现有什么关系?c、c++、delphi、vb、.net都可以编写dll程序,尽管在细节上可能有这样那样的不同,但是假如你自己发明一种语言可以编译成PE文件格式符合window动态链接库的规范,那也可以不是么
------解决方案--------------------
这个问题好比问exe和语言无关?

理论上说,任何编程语言都是和机器代码等价的,也就是说你不能从机器代码推导出源代码是什么语言写的。但是实际上,任何编译器都有“机器制造”的痕迹,它们具有一些模式,或者它们都使用了对应机器指令的一个子集。据此可以推定(注意是推定,而不是确定)程序由某个编译器产生。

通常,你可能接触到的dll有3类,标准dll,com dll,以及.net程序集。.net程序集是具有.dll后缀的一般可执行文件(所谓的可移植执行文件,PE)。com dll本质上也是一个标准dll。而标准dll本质上是一个一般可执行文件。