mirstp520 于 2014.11.21 10:10 提问
- Unicode 动态库LoadLibrary加载慢
-
各位大虾,
我写了个Unicode MFC DLL,用LoadLibrary加载很慢。怎么解决这个问题?
-
-
caozhy
2014.11.21 13:41
试试看静态加载dll能否快一些。另外是不是和特定的函数有关。
-
-
lx624909677
2014.11.21 14:30
有测试过加载时长吗?
-
- u014705374 2014.11.21 17:39
LoadLibrary大致过程
1、系统读取DLL文件
2、将其映射到你的进程空间
3、调用DLL导出函数DllMain
前两步应该不会那么慢,猜想可能你的DLL的DllMain函数耗费时间。
DllMain函数一般在DLL_PROCESS_ATTACH处理中,对内部的数据进行初始化或者一些其他准备工作。
你的DLL是否有源码,你可以检查看看DllMain。
你的DLL还使用了其它DLL?
-
-
eagleyan
2014.12.01 05:54
可能和你使用DllImport的方式有关,如果你没有指定Charset,你可以明确的使用LoadLibraryW函数。还有如果有可能,尽量使用LoadLibraryEx函数,这样你可以指定你的dll load成数据文件。
DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!