2 mirstp520 mirstp520 于 2014.11.21 10:10 提问

Unicode 动态库LoadLibrary加载慢

各位大虾,
我写了个Unicode MFC DLL,用LoadLibrary加载很慢。怎么解决这个问题?

4个回答

caozhy
caozhy   Ds   Rxr 2014.11.21 13:41

试试看静态加载dll能否快一些。另外是不是和特定的函数有关。

lx624909677
lx624909677   Ds   Rxr 2014.11.21 14:30

有测试过加载时长吗?

u014705374
u014705374   2014.11.21 17:39

LoadLibrary大致过程
1、系统读取DLL文件
2、将其映射到你的进程空间
3、调用DLL导出函数DllMain
前两步应该不会那么慢,猜想可能你的DLL的DllMain函数耗费时间。
DllMain函数一般在DLL_PROCESS_ATTACH处理中,对内部的数据进行初始化或者一些其他准备工作。
你的DLL是否有源码,你可以检查看看DllMain。
你的DLL还使用了其它DLL?

eagleyan
eagleyan   Rxr 2014.12.01 05:54

可能和你使用DllImport的方式有关,如果你没有指定Charset,你可以明确的使用LoadLibraryW函数。还有如果有可能,尽量使用LoadLibraryEx函数,这样你可以指定你的dll load成数据文件。

DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!