问题如下:
写了一个activex控件,调用另外一个helloword.dll,把它们都打包在一个CAB文件,然后在网页中嵌入这个cab文件。发现调用dll失败。在测试的时候,我用的是绝对路径,如:F:\\helloword.dll.但是这样写不行呀,其他电脑上没有这个dll。不知道怎么解决。请赐教。
写了一个activex控件,调用另外一个helloword.dll,把它们都打包在一个CAB文件,然后在网页中嵌入这个cab文件。发现调用dll失败。在测试的时候,我用的是绝对路径,如:F:\\helloword.dll.但是这样写不行呀,其他电脑上没有这个dll。不知道怎么解决。请赐教。
听说可以把DLL当做资源加入到EXE中。下面是别人说的,我没搞过,楼主有兴趣可以试试。把DLL当作自定义资源放到工程里。把资源段Section改成可执行。然后取资源位置。
把它传给GetProcAddress查找相应函数即可。
GetModuleFileName 获得自己的文件完整路径
去掉后面的文件名,就是自己所在的文件夹,再附加上同文件夹下其它的 DLL 名称,然后 LoadLibrary
如果你inf里面是直接写的dll,没有目录,那dll路径就是C:\WINDOWS\Downloaded Program Files\helloword.dll
你测试过?还是真按照我说的来做的?
GetModuleFileName传递的第一个参数是什么?你传递的是NULL吧,应该传第一步保存下来的模块句柄,得到的就是自己的文件路径。