青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2010-11-26 15:21 | 显示全部楼层 |阅读模式
程序的目的是通过对话框给工作部件添加一个文件属性。编译时提示错在红色部份那里。不知错在哪里,请高人指点。* o; n' Z! r& H' ?% \+ v7 n+ T' k
错误提示:(error C2440: 'initializing' : cannot convert from '' to 'int (__cdecl *)(int,void *,struct UF_STYLER_item_value_type_s *)'9 P$ c$ Q1 P( M  I# V& O  M$ h7 m
        None of the functions with this name in scope match the target type)
5 t4 d' F& D/ s  N( j: {, ~: w& ^3 s% d" r, B- q6 d, c
下面是程序内容:* K7 `5 d" |9 r3 l5 \% J8 ^5 c: b
#include <stdio.h>
, i' A+ [) L$ c0 m0 A#include <uf.h>
& e. {; P* F9 a) p( y: ]#include <uf_defs.h>6 E' A) K! M6 n6 `$ p5 I$ Q( Z
#include <uf_exit.h>" n9 Q4 c4 p; X3 L
#include <uf_ui.h>
# n3 `: G) U# w* K#include <uf_styler.h>0 B; W6 r$ O& v& g" C, h8 s( _8 X! G% ^
#include <uf_mb.h> / a1 I$ d9 f1 }. \/ Y
#include <uf_part.h>& R) U) E  V7 |% x' Z7 Q# q& h9 c* s
#include <uf_modl.h>
: Z1 j6 }7 U6 X4 C  j#include <uf_attr.h>
$ r, `9 E6 Y, C9 |9 C" h! v#include <uf_cfi.h>
9 ?0 |: N9 ]8 }9 u0 d/ G# k#include <uf_assem.h>- \2 p0 \+ U" ~: V( V" p# x

, s! w. A2 e6 s8 I5 C, q0 f0 ?#define MY_TH               ("TH")) b/ R( ~$ o9 H3 J+ Q3 L
#define MY_DIALOG_OBJECT_COUNT  ( 1 )
, F; D9 w" K9 h' o $ @2 ~; h; N. b. A9 N" b
int MY_ok_fun(int dialog_id,/ e' A% |! r. j& {& h- }
  char *client_data,
3 `+ j$ {+ Y  w. `! ~  UF_STYLER_item_value_type_p_t callback_data);! f( s) x) O, h4 f& C  D8 L! Z
$ _: r0 x* F1 ]6 v% j5 s; ]7 |
    int LaunchProDesignDialog( int *response );
) Q% ^. Y0 g; Z! Q4 E( C* _
6 h# f' b$ S+ I0 n* N; F#define MY_CB_COUNT ( 1 + 1 ) /* Add 1 for the terminator */& Q( ?: D. v5 E
static UF_STYLER_callback_info_t MY_cbs[MY_CB_COUNT] = $ f" p* O# _; r4 ^9 ?9 l
{
( g/ r8 g" w. ]6 R3 f {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB, 0, MY_ok_fun}, 7 H  b, Y/ {( f5 Q8 s8 D5 k+ n
{UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }( O7 Y) P  a: G
};. \2 V- D- V+ P
% W7 V+ {1 u; a# [  D

; z3 C( ~; [2 |# n) Bstatic UF_MB_styler_actions_t actions[] = {- e* N* D/ C6 G$ g0 H" a" @: w1 m
    { "att.dlg",  NULL,   MY_cbs,  UF_MB_STYLER_IS_NOT_TOP },; t& C6 g+ K5 o% H
    { NULL,  NULL,  NULL,  0 } /* This is a NULL terminated list */; J, W/ ?) S5 O* I' R8 F
};2 [, A/ u( o* W8 ?; [5 p
0 {. V, u: m9 s. T

( ]7 \% C, Z& H' A# d  L4 Qextern int LaunchProDesignDialog( int *response )# u3 o$ g7 p3 r$ f4 Z* b0 i
{* U5 m! x8 o3 ?; w- ?! P9 H
    int  error_code = 0;
6 T0 {, T: z: ?, M+ D: a9 L ( I# n/ {2 Y* H+ ^
    if ( ( error_code = UF_initialize() ) != 0 )
' u& C; l: u: t, c           return (0) ;
5 g, n: w. p# z3 `1 x( n    if ( ( error_code = UF_STYLER_create_dialog ( "att.dlg",
8 ]" Y* L; g7 N$ }           MY_cbs,      /* Callbacks from dialog */: p# [, W4 J* M# l9 h/ x$ S* A7 i2 H
           MY_CB_COUNT, /* number of callbacks*/
) g. Y, |% H. u& D$ Z' ?( X! ~           NULL,        /* This is your client data */
" F0 @5 i3 ]. f9 B* s# O3 ^- O3 P           response ) ) != 0 )' T+ H- e4 j8 o% K8 k
    {
# Z! o. \0 o8 m( L# l$ X  d          char fail_message[133];
0 f# y" {7 ~/ h          /* Get the user function fail message based on the fail code.*/; u9 p; u* m* O: w
          UF_get_fail_message(error_code, fail_message);1 G: m! Z$ g+ g+ r, x8 K( a
          UF_UI_set_status (fail_message);
, [# j4 d0 ~2 @7 Y/ d2 e$ a, \! p          printf ( "%s\n", fail_message ); 4 d% D, @  S+ Y6 X0 Q, l" ^- n
}! ~# u/ R, p* ?+ \
   UF_terminate();                             
! O6 t: w. k* X' J- M3 X9 r+ q9 [    return (error_code);
8 ?8 L# ?' _2 P  w8 @, x7 v3 {# W}
) X. X* x8 J+ Q7 o; l
  r+ `& F1 K- E; C  N' q# g4 M - I& v- d/ i; B, r" q+ T
int MY_ok_fun(int dialog_id,6 h% r4 z1 g4 A9 |7 R" e
  char *client_data,
9 ^+ h$ C/ e  |( i  UF_STYLER_item_value_type_p_t callback_data)# y1 a8 J, d' V
{
! X% u; |; Y$ |* g% k6 e
) m. e, x" a% F8 M1 l- Z, Z  UF_STYLER_item_value_type_t data;
. B9 u1 W# f3 x3 S% F$ W  UF_ATTR_value_t value;
" Q( y" Q) `# p7 V* C5 Y1 Y% y0 z
2 ?  j1 [7 @5 T& l6 J- h6 J; b . k( K5 s0 R4 v% Y
  if ( UF_initialize() != 0)
2 V; v* \; _6 X+ v6 K          return ( UF_UI_CB_CONTINUE_DIALOG );8 Z3 q! W/ K1 a! j' o1 @6 V
       data.item_attr=UF_STYLER_VALUE;
# g5 z" q3 f- A/ N   data.item_id=MY_TH;
9 @# F6 {5 e* o% ~   UF_STYLER_ask_value(dialog_id,&data);& S2 A+ R; A' w' f  l# C: }
   value.type=UF_ATTR_string;% p& F1 f4 v( \' [5 z
   value.value.string=data.value.string;
) e5 f$ w/ o' N, |+ z2 P, D4 \       % G/ B9 L' k; u- E/ G# g* m. v
   UF_ATTR_assign(UF_ASSEM_ask_work_part (), "图号", value);
0 A' q  _' {+ l. Z$ Z      UF_terminate ();
$ J3 X2 e0 |8 Z; c return (UF_UI_CB_CONTINUE_DIALOG);0 A, n6 P0 o: I7 V& F1 ~/ V4 T
return (UF_UI_CB_EXIT_DIALOG);
2 A+ s+ M6 f, h* a: Y/ {/ ? }
 楼主| 发表于 2010-11-26 21:12 | 显示全部楼层
自己顶上去
回复 支持 反对

使用道具 举报

发表于 2010-12-2 16:31 | 显示全部楼层
你没有搞懂菜单激发对话框和菜单激发应用两种激发方式。。。。# e9 W; I1 ~" a! J  e
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}* s2 j" j# n- c) K
同时编写菜单的时候ACTIONS att.dlg变成ACTIONS LaunchProDesignDialog
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 11:27 , Processed in 0.348958 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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