【1】用VS新建一個dll工程
將項目設置為x64平臺(這步很重要,否則程序無法編譯成功)
【2】添加UG頭文件目錄,屬性頁->C/C++->常規->附加包含目錄
【3】添加UG庫所在目錄,屬性頁->鏈接器->常規->附加庫目錄
【4】添加附加依賴項,屬性頁->鏈接器->輸入->附加依賴項
輸入:
libufun.lib
libugopenint.lib
libvmathpp.lib
libnxopencpp.lib
libnxopenuicpp.lib
【5】添加所有lib作為依賴項(此步可跳過)
dos命令行輸入下邊兩行命令,將會在e盤111.txt中寫入“\NX 12.0\UGOPEN”所有lib文件名稱
C:\Users\Administrator>cd /d C:\Program Files\Siemens\NX 12.0\UGOPEN
C:\Program Files\Siemens\NX 12.0\UGOPEN>dir /b *.lib*>e:\111.txt
【6】代碼:注釋掉DllMain,ufusr為NX的接口函數
// dllmain.cpp : 定義 DLL 應用程序的入口點。
#include "pch.h"
//#pragma comment(lib, "C:\\Program Files\\Siemens\\NX 10.0\\UGOPEN\\libugopenint.lib")
//#pragma comment(lib, "C:\\Program Files\\Siemens\\NX 10.0\\UGOPEN\\ugopenui.lib.lib")
#include "uf.h" // 包含常用 UF 函數的聲明
#include "uf_modl.h" // 包含建模相關的 UF 函數聲明
#include "uf_ui.h" // 包含界面操作相關的 UF 函數聲明
#include <stdio.h>// 實際工作函數
static void do_work(void)
{uc1601("do task!", 1);return;}void ufusr(char* param, int* retcode, int paramLen)
{if (!UF_initialize())//獲取二次開發許可 {uc1601("獲取開發許可成功!", 1);//獲取二次開發許可失敗,提示用戶 do_work();//實際工作函數 UF_terminate();//釋放二次開發許可 }else{uc1601("獲取開發許可失敗,退出!", 1);//獲取二次開發許可失敗,提示用戶 }
}/*
BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;
}*/
【7】調用
新建一個模型
Ctrl+U或者文件->執行->NX Open