问题1:
用vc编写dll时,连接器根据导出的变量或者函数,自动生成*.lib文件,但是好像不生成*.h文件,是不是这样?是不是要手工生成*.h文件?
问题2:
在使用*.dll工程中(引用*.dll),采用隐式连接时是不是需要*.h文件?
问题3:
在使用*.dll时,如何把*.dll静态连接到*.exe文件中?,而使运行*.exe文件时,不需要*.dll文件。
用vc编写dll时,连接器根据导出的变量或者函数,自动生成*.lib文件,但是好像不生成*.h文件,是不是这样?是不是要手工生成*.h文件?
问题2:
在使用*.dll工程中(引用*.dll),采用隐式连接时是不是需要*.h文件?
问题3:
在使用*.dll时,如何把*.dll静态连接到*.exe文件中?,而使运行*.exe文件时,不需要*.dll文件。
解决方案 »
- 可以 编辑的 列表控件
- 用StretchBlt对bmp进行缩放、输出,怎么会出现图片垂直翻转了呢?
- 想请问一下大家.如果知道一台机器的公网IP,也可以得到它的数据包,如何能知道这台机器下带了几台机器上网吗?
- vc读写csv文件……急!!!!!!!!!
- 求助:Win200下以太网如何获取网卡数据流量
- 请教高手!简单问题!用MFC做的程序为什么拷到没装VC的机器上不好使?怎么解决?》
- 关于建库的问题
- 请问怎么修改InstallShield中的可选项,如Typical、Compact、Custom等。
- 《标准C++宝典》和《C++大学教程》哪本书好一些?有人看了吗?
- 一个难题:熟悉系统高手请进
- 已知一个PHP网页的地址,如何将其页面内容读出来?
- 我用ATL Server写的WebService部署到非开发服务器上不能用,不知为什么?
在setting的c/c++中设定MT
问题2 隐式调用dll不需要.h也不需要.lib
问题3 显式调用dll的时候,编译的时候需要.h和.lib,编译成功exe后,也就是运行exe时是不需要.h和.lib的,但是要把.dll和exe放在同一个目录下面,或者把.dll放在系统目录下面
比如 win98放在 c:\windows98\system , win2000放在c:\winnt\system32,(假设系统安装在c盘),都是可以的。
dll的显示连接,是通过LoadLibray(),对dll的使用,
不需要.h和.lib文件
dll的隐式连接,是通过.lib来使用dll的另外,如果.h文件需要自己手动编写的,如何编写?
大的 dll的.h文件编写的时候可比较麻烦,
而且如果写错的话,如何检查错误?(如何保证正确)
Linking...
g.obj : error LNK2001: unresolved external symbol "int __stdcall UninstallHook(void)" (?UninstallHook@@YGHXZ)
g.obj : error LNK2001: unresolved external symbol "int __stdcall InstallHook(void)" (?InstallHook@@YGHXZ)
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/g.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
Linking...
g.obj : error LNK2001: unresolved external symbol "int __stdcall UninstallHook(void)" (?UninstallHook@@YGHXZ)
那是你没有在工程中加入了lib文件.问题1:
用VC编写的dll, 对于输出函数, 那个*.h文件你可以手工生成, 也可以有你创建这个dll工程时有类向导生成的.
问题2:
隐士连接时不需要dll文件的
问题3:
当你的lib文件中没有dllexport那些函数时, 静态连接到exe后, 不需要*.dll文件。