青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 1943|回复: 3

[疑难] 请高人帮我看看程序错在哪里。

[复制链接]
发表于 2010-11-26 15:21 | 显示全部楼层 |阅读模式
程序的目的是通过对话框给工作部件添加一个文件属性。编译时提示错在红色部份那里。不知错在哪里,请高人指点。
: |: `6 s+ U$ L7 {3 b+ {0 v: D; s4 L错误提示:(error C2440: 'initializing' : cannot convert from '' to 'int (__cdecl *)(int,void *,struct UF_STYLER_item_value_type_s *)'
1 o  H6 x" }; b        None of the functions with this name in scope match the target type)! w$ w* s5 w; L$ N
  B% t  C# _# y
下面是程序内容:
2 U# ^# q8 _( L# K# v9 o#include <stdio.h>
: i) o9 ^5 n) m+ K' x7 q# M#include <uf.h>
/ x/ G. i" ?+ N2 y, M#include <uf_defs.h>
5 Y4 [" \' C' _: w6 W" y" H. k#include <uf_exit.h>
( x3 u5 F9 o" q( O( g; s; D* r#include <uf_ui.h>  Q- g4 L3 e2 Y, J4 ^) h
#include <uf_styler.h># G0 P* R9 ]1 W# |8 X: d# K7 H& T
#include <uf_mb.h> ; A8 f% U% k+ L5 @. D
#include <uf_part.h>( l: k, y% g" v$ d3 t& `1 ]
#include <uf_modl.h>' V( p: v( @5 P, o" N' T
#include <uf_attr.h>: }7 z: l/ ]" e: `5 A
#include <uf_cfi.h>
  A( S+ `. U9 M#include <uf_assem.h>1 J# x1 w, l7 v& G  W2 d+ ^

: |/ J  I* X' f" E; w5 ^1 l0 S#define MY_TH               ("TH")
' N. p( Z7 e. H6 [#define MY_DIALOG_OBJECT_COUNT  ( 1 )
) j' I- h6 k3 P) [/ Q
# U3 S) ]0 m* u. fint MY_ok_fun(int dialog_id,
8 ]4 T2 V) G7 h2 ^5 e4 o+ @  r! J  char *client_data,
: a+ f# O; W- n# {# X: t  UF_STYLER_item_value_type_p_t callback_data);
) y6 ]3 \# r0 P5 \
) Z4 s6 r' s) O    int LaunchProDesignDialog( int *response );
/ \5 s7 o2 m, {, _' b( w; c* m. N' E
#define MY_CB_COUNT ( 1 + 1 ) /* Add 1 for the terminator */
6 M4 S% A1 C$ C" \. R1 e' f8 ostatic UF_STYLER_callback_info_t MY_cbs[MY_CB_COUNT] = 4 e( H- s1 L: Y- T2 C
{
7 A2 `  f& r0 w {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB, 0, MY_ok_fun}, - F- ]& ]  V( b+ o7 a2 U( N: I+ E
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
6 l* d* g: Y: V" I% S};% i# Z4 L' j1 _

6 N( v: Q! P: |! V
9 P3 F9 r- E0 estatic UF_MB_styler_actions_t actions[] = {5 s/ Q1 O' c$ l9 K5 l
    { "att.dlg",  NULL,   MY_cbs,  UF_MB_STYLER_IS_NOT_TOP },
% \* I5 U, H5 w# z7 P8 a0 c; x    { NULL,  NULL,  NULL,  0 } /* This is a NULL terminated list */
) J5 E( @9 K$ X! S! h};, v4 ~0 Z# Q- Q( ^5 b, z( d- ?& Z
( f% P( v  ?2 i7 {7 z5 e4 P. W

" g. v$ Z' ^: kextern int LaunchProDesignDialog( int *response )
4 C: d, a9 h$ [{; o5 d  s' D) I# }( d6 ~: C0 G8 g% {! B
    int  error_code = 0;
. j+ W$ l* n2 \  [4 [ 9 ]7 [5 O- C2 Z1 C3 d! ^, `
    if ( ( error_code = UF_initialize() ) != 0 ) $ O+ F8 R; X6 S. s1 S8 i
           return (0) ;- S" ?" B6 \/ H% s; M& M" _
    if ( ( error_code = UF_STYLER_create_dialog ( "att.dlg",
8 s1 H) {8 m. p+ R           MY_cbs,      /* Callbacks from dialog */9 z" \) s# s+ r9 Z
           MY_CB_COUNT, /* number of callbacks*/
# Z, a7 f! o# c! _           NULL,        /* This is your client data */0 g  [9 B5 o# Y$ J8 I
           response ) ) != 0 )
# k% w4 H( q/ {( q' R4 {$ h0 ]    {* ?$ X, p! q6 X% m8 [
          char fail_message[133];
) R" m5 {9 l: G- K5 f& u8 b          /* Get the user function fail message based on the fail code.*// Q3 D' U& Z! Z7 u" j' M
          UF_get_fail_message(error_code, fail_message);
% G( b6 L- x# V          UF_UI_set_status (fail_message);: Y6 o- \2 E! K
          printf ( "%s\n", fail_message );
+ _/ t& `5 H, K, y& D}
$ z* N; U) h" o+ Z& H' H# s   UF_terminate();                             
0 H7 ^1 h4 j. V* e, D  X( \( w# L    return (error_code);
# T7 c2 u' D; @* @/ T) c# F3 W2 d4 x}( X- P  ^( n5 m" Q- {* \/ w/ K/ Y' E

- Y1 \+ T' h4 s7 G7 G
, `! _% J' ]! _) A' {3 N" o9 [+ X2 V5 ~ int MY_ok_fun(int dialog_id,
! D2 Y( q2 L/ X" F" [( D# U7 h2 a* l8 o* B! ]  char *client_data,' N% F" S+ l6 L/ p  @* t4 ?
  UF_STYLER_item_value_type_p_t callback_data)* b) }! y& E0 ~
{
1 Y  D6 {' A4 d3 ^% m
. b0 S$ F. k, |) `  UF_STYLER_item_value_type_t data;, f1 B# ?9 J/ @% a0 T% |# k* B
  UF_ATTR_value_t value;, C+ h$ B# H4 k9 |* C

3 C# m$ O( v$ e! j# `9 L# ~ . W4 u" V8 q3 x( j( b+ K
  if ( UF_initialize() != 0)7 W7 |+ a0 p% j( u3 e
          return ( UF_UI_CB_CONTINUE_DIALOG );: P2 P, |; s( {8 d
       data.item_attr=UF_STYLER_VALUE;
" }2 ?( T$ F( W9 {9 ?( _   data.item_id=MY_TH;
5 B% o" f- [; R$ G" }! l- b& f   UF_STYLER_ask_value(dialog_id,&data);
" [, W& I- a* e0 R/ G& B, c' ]% f" c   value.type=UF_ATTR_string;9 l6 G7 ^" A6 W2 X4 i+ y
   value.value.string=data.value.string;% B/ ]0 w: q! ?+ v
      
* ~. q1 p/ z# Z- u   UF_ATTR_assign(UF_ASSEM_ask_work_part (), "图号", value);
& U5 g! f5 C+ r8 T8 l      UF_terminate ();' U$ q6 Q8 ?; s( l" z* O
return (UF_UI_CB_CONTINUE_DIALOG);3 M1 V% v) k/ Y- |
return (UF_UI_CB_EXIT_DIALOG);
+ o- g' @" m- b/ j }
 楼主| 发表于 2010-11-26 21:12 | 显示全部楼层
自己顶上去
回复 支持 反对

使用道具 举报

发表于 2010-12-2 16:31 | 显示全部楼层
你没有搞懂菜单激发对话框和菜单激发应用两种激发方式。。。。1 o! p6 }9 P7 U. @: Y
LaunchProDesignDialog( int *response )函数是一个应用,你这里明显是想用菜单激发应用方式。但是上面却用static UF_MB_styler_actions_t actions[] = { "att.dlg",  NULL,   MY_cbs,  UF_MB_STYLER_IS_NOT_TOP }。。。这是菜单激发对话框的方式,应该改成UF_MB_actions_t actions_table[]={"LaunchProDesignDialog",LaunchProDesignDialog,NULL}3 {9 u, S4 c1 S( k$ Q  r
同时编写菜单的时候ACTIONS att.dlg变成ACTIONS LaunchProDesignDialog
回复 支持 反对

使用道具 举报

发表于 2010-12-6 14:46 | 显示全部楼层
没有回复呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-7-29 07:07 , Processed in 0.160565 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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