使用System::Call调用自定义dll中的导出函数

Function un.MyRemoveData
SetOutPath $INSTDIR
StrCpy $1 ${NSIS_MAX_STRLEN}
System::Call 'MiPlugin4NSIS::MiPIGetDataPath(t, *i) i(.r0, r1r1).r2 ? u'
IntCmp $2 0 +1 skiprmdir
RMDir /r "$0"
skiprmdir:
FunctionEnd

调用函数$INSTDIR目录中的MiPlugin4NSIS.dll的导出函数MiPIGetDataPath,函数参数类型为t(字符串), *i(int*),.r0(输出参数,放入$0中),r1r1(第二个参数为输入输出参数,已经放在了$1中),.r2(函数调用返回值放入$2中),? u(调用完成后立即卸载dll)关于参数中的字符串。。。有人说是char*的,但是我的NSIS为Unicode版本的,经过测试字符串类型为wchar_t*。。。非Unicode版本为啥还需要测试

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容