先抛出问题:想在自己的程序调用出如下菜单栏;
于是开始在查资料查方法,主要在两个方向:内部命令、内部函数,内部命令毫无头绪,于是开始研究内部函数,之前从未接触过内部函数,故写此博客以作记载。另:知道上述问题处理方案的大佬,望不吝赐教,万分感谢。
下载工具depends.exe:
然后打开你想要的查看的dll,比如:C:\\Program Files\\Siemens\\NX 12.0\\NXBIN\\libugui.dll;
Q:我怎么知道我要调用的函数在哪个dll?
A:1、查资料;2、查日志,先在UG上操作你要的功能,再查看日志,在使用该功能前加载了哪个dll(自己总结的方法,仅供参考)。如下图:
打开后显示如下界面,右侧中间窗口即为函数名;
Q:我怎么知道我要调用的函数参数长啥样?
A:如下图,选中函数右键,勾选图示项即可(每个函数的功能自己知道更好,不知道只能根据函数名去推测,或者百度)
代码示例:
UF_initialize();
char function_name[257] = "";
strcpy(function_name, "?MT_append_ug_title@@YAXPEAD_N@Z");
typedef char* (*load_ufusr_f_p_t)(char*, bool);
load_ufusr_f_p_t load_ufusr_ptr = NULL;
char* file_path = "C:\\Program Files\\Siemens\\NX 12.0\\NXBIN\\libugui.dll";
UF_load_library(file_path, function_name, (UF_load_f_p_t*)&load_ufusr_ptr);
if (load_ufusr_ptr != NULL)
{
load_ufusr_ptr("111", true);
}
UF_terminate();
return;