找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 20429|回复: 18
打印 上一主题 下一主题

[原创] 求助谁会UG二次开发的外部程序编写

[复制链接]
跳转到指定楼层
1
发表于 2008-12-16 13:53:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
用VS(2008)开发内部程序(DLL)的都可以运行,没问题。

但是做成exe,就是不行。也可以编译通过,但是一运行就崩溃。
将libufun.dll设成延迟加载,调试的时候装入就失败崩溃。
如果采用动态加载,UF_x等函数都定义成函数指针,采用LoadLibrary装入 libufun.dll 寻导出函数地址的方式。
调试状态下,使用 LoadLibrary ( libufun.dll )就会失败,返回模块句柄 NULL。
如果将生成的 exe 放到 ug2 的目录下运行,装入 LoadLibrary 会成功,也能得到 UF_initialize 的地址,但是一运行就崩溃

————好难办啊,谁会UG外部程序的开发?
我用的是UG5, VS2008,VS6 都试过都不行,直接控制台、MFC方式都试过,一样在初始化时候崩溃

各位,帮忙
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2008-12-16 19:21:59 | 只看该作者
是不是已经完成退出了啊,刚开始我也以为是崩溃了,后来觉得是代码运行完了,我用的是MFC,不知是不是你这种情况,进程中的ugraf启动到多少了才崩溃?
3
发表于 2008-12-17 10:28:45 | 只看该作者
以前用VS2005做过一些复杂的例子,包括MFC的,都是可以的。

今天试了一下VS2008,NX5的,也没有问题。 源代码贴给你,希望能给些帮助。
函数将在你的D盘根目录下创建一个新的part.

注意,你在运行的时候,要设定好ugii_root_dir,并将其添加到path路径中。

#include <uf.h>
#include <uf_part.h>
#include <uf_cfi.h>

extern void main( char argc, char *argv[] )
{
    if( UF_initialize() )
    {
        std::cout << "UF_initialize Failed" << std::endl;
        return;
    }

    char part_name[256] = "d:\\testpart.prt";
   
    uc4561(part_name, 2);

    tag_t part_tag = NULL_TAG;
    int errorCode = UF_PART_new( part_name, 1, &part_tag );
    if( errorCode )
        std::cout << "New Part Failed" << std::endl;
    else
    {
        UF_PART_save();
        std::cout << "New Part Successful" << std::endl;
    }

    UF_terminate();
}
4
发表于 2008-12-17 15:55:48 | 只看该作者
首先谢谢ls两位的回答,
但是实际上,我也使用了3楼的方法。
一运行就崩溃,
或者延迟加载 libufun.dll 库,但是只要一执行到 UF_initialize 就崩溃。

也就是说,执行程序是无法装入 libufun.dll 模块,各位没有出现个这个情况?

会不会是我的 ugs_common.dll 有问题(这个文件就是破解文件)。劳烦ls的大哥给我一份你的 lic 文件和 ugs_common.dll文件试试。
5
发表于 2008-12-17 15:57:46 | 只看该作者
运行 ugraf.exe 没有问题,能正常操作,
包括运行 ugII/目录下的 .exe文件都没问题(命令行模式下运行)。
6
发表于 2008-12-17 16:36:17 | 只看该作者
哈哈,lic和ugs_common.dll我没有办法帮你的了

我只能帮你验证方法正确与否

这个只能自己解决了
7
发表于 2008-12-17 17:06:12 | 只看该作者
大哥,你是正版啊,还舍不得

UG程序已经可以启动,应该破解是没问题了
8
发表于 2008-12-17 18:50:34 | 只看该作者
楼上的兄弟有没有用外部方式启动过nx manager(teamcenter 环境下的UG)呢?
9
发表于 2008-12-18 10:34:12 | 只看该作者
有,我确认没有问题

注意要自己设置好tc启动环境
10
发表于 2008-12-18 15:03:11 | 只看该作者
谢谢ls各位,问题已经解决了。

不是c++环境配置的问题,是我安装的NX5破解的问题。我用windbg跟踪汇编调试+手动延迟加载 都发现装载模块的时候在ugs_common.dll时候出现错误,应该是此dll装载函数里面有验证机制导致的装入模块时 998 错误崩溃。

希望此贴对做二次开发的兄弟有一点点帮助

我今天装了 nx4 就没问题了,exe文件可以运行,虽然初始化时间比较长,但毕竟成功了

——谢谢ls各位的帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-26 01:58 , Processed in 0.027166 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表