iCAx开思网

标题: 【求助】有人试过UG的external模式吗? [打印本页]

作者: KangKang    时间: 2004-10-31 10:58
标题: 【求助】有人试过UG的external模式吗?
用简单的NX1向导做的,C,没有添加任何代码,把UGii下所有lib*.lib文件考到DEBUG下,不然不能通过编译,
程序运行时,却出现如下对话框:
作者: KangKang    时间: 2004-11-2 16:25
真的没有试过吗?
:(
作者: skywood    时间: 2004-11-2 19:09
没用过,帮你顶一下。
作者: Patton_icax    时间: 2004-11-4 23:52
请问仁兄做的什莫程序出现这种后果,可以探讨一下,qq:297122380
作者: KangKang    时间: 2004-11-5 15:38
Patton_icax wrote:
请问仁兄做的什莫程序出现这种后果,可以探讨一下,qq:297122380

想尝试在external模式下如何进行UG的二次开发,
本身一个什么事情也不做的程序,
作者: goodluckwu    时间: 2004-11-10 16:44
把你的程序贴出来看看,我经常用外部模式,没碰到什么问题啊
作者: Patton_icax    时间: 2004-11-10 22:26
就是
作者: KangKang    时间: 2004-11-11 13:50
/*****************************************************************************
**
** exter.cpp
**
** Description:
**    Main file for the application.
**
*****************************************************************************/
  
/* Include files */
#include <stdio.h>
#include <uf.h>
#include "exter.h"
  
/* Main routine */
extern void main( char argc, char *argv[] )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
       
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
   &nbsprintErrorMessage( errorCode );
}
  
/* PrintErrorMessage
**
**     Prints error messages to standard error. */
static void PrintErrorMessage( int errorCode )
{
    if ( 0 != errorCode )
    {
        /* Retrieve the associated error message */
        char message[133];
        UF_get_fail_message( errorCode, message );
  
        /* Print out the message */
  
        fprintf( stderr, "%s\n", message );
    }
}
/*****************************************************************************
**
** exter.h
**
** Description:
**    exter header file.
**
*****************************************************************************/
static void PrintErrorMessage( int errorCode );
请大侠指教,先是会出现找不到一些LIB*.DLL的提示,然后我把这些LIB*.DLL 从UGII里COPY到DEBUG下,然后就出现了楼顶的那个对话框了  
BTW:我的是环境是UGNX 2 +VC6.0
作者: KangKang    时间: 2004-11-14 14:54
自己再顶一把,
各位大侠帮帮小弟啊
作者: 深夜摔键盘    时间: 2004-11-14 15:54
没用过外部的。
你的程序之所以不能运行,是因为缺 dll 支持。光加了lib没有用,WINDOWS中,lib只是对 dll中的接口函数的声明,像目录一样。
把你写的外部程序放到UGII文件夹下试试看.
如果通过,那么就要在你的DEBUG中加上libufun.dll和libugopenint.dll再试试。
作者: KangKang    时间: 2004-11-14 19:14
深夜摔键盘 wrote:
没用过外部的。  
  你的程序之所以不能运行,是因为缺 dll 支持。光加了lib没有用,WINDOWS中,lib只是对 dll中的接口函数的声明,像目录一样。  
  把你写的外部程序放到UGII文件夹下试试看.  
  如果通过,那么就要在你的DEBUG中加上libufun.dll和libugopenint.dll再试试。

当我把生成的。exe 文件放到UGII下时,虽然不会弹出上面的对话框,但是程序并没有输出我想要的一个字符串(使用printf("hello");)只是闪出了黑色的筐子,又自己关闭了。
当我把LIBUFUN.DLL和LIBUGOPENINT。DLL考到DEBUG下时,还是弹出楼顶的对话框,请问这样可以说明什么?
作者: 深夜摔键盘    时间: 2004-11-14 22:24
不是没有显示,是你没有仔细观察一下。如果不在UGII文件夹下运行,依然出错,那表示DLL还是缺。运行出错的时候应该有提示缺哪些DLL,如果没有提示,可以用一些文件查看器查查它用到哪些DLL,拷过去就是了。而放在UGII下能运行,是因为所有DLL都能在UGII下找到。
  
另外,资料说UG的外部模式是无法做图形界面的东西的,常用来做后台序,你用UG的文件转换器时,常跳出一个console窗口,也许就是外部模式的开发。因为UG的文件转换器可以独立于UG而运行。
作者: KangKang    时间: 2004-11-15 09:43
真的很感谢键盘兄出手相助:)
现在我的情况是这样的:如果直接双击UGII下我创建的。exe 文件,的确console 窗口是很快的闪一下就自己 关闭了,根本看不清楚有没有输出字符串;但是我如果先进入命令提示行模式,再到UGII下运行生成的.exe文件是可以顺利运行成功。
再次谢谢你。:)
//main()函数有三个参数?不是两个吗?
作者: KangKang    时间: 2004-11-15 19:38
深夜摔键盘 wrote:
不是没有显示,是你没有仔细观察一下。如果不在UGII文件夹下运行,依然出错,那表示DLL还是缺。运行出错的时候应该有提示缺哪些DLL,如果没有提示,可以用一些文件查看器查查它用到哪些DLL,拷过去就是了。而放在UGII下能运行,是因为所有DLL都能在UGII下找到。  
  
  另外,资料说UG的外部模式是无法做图形界面的东西的,常用来做后台序,你用UG的文件转换器时,常跳出一个console窗口,也许就是外部模式的开发。因为UG的文件转换器可以独立于UG而运行。

用文件查看器看了。考过去了还是不行:(
作者: 深夜摔键盘    时间: 2004-11-18 08:41
外部开发,应该只能在UGII下可以运行,要么就找到libufun.dll和libugopenint.dll所引用的每一个库。也就是说把整个UGII中的文家打个包。
作者: zhjb113    时间: 2004-11-20 15:28
我都是把exe文件直接生成到目录ugII 下面,简单省事,
我用的是UG18,至于UGNX2,有可能会有问题,可能性小于5%。
作者: pzytony    时间: 2005-1-17 20:05
怎样用外部模式开发一个open UG file 的功能?
作者: jon_wu    时间: 2005-1-18 03:26
你可以设置Path环境变量,这样就不涉及到把外部exe放到ugii或者ugii下的dll拷来拷去的问题。把UGII目录加入Path环境变量。
另外,external模式是不能与UG的图形界面交互,但不代表只能开发console下面的程序,可以自己用别的图形工具做界面,例如MFC。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3