标题:在VC6.0里面做的程序,在2010版本里面编译有问题,请指教
只看楼主
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
结帖率:75%
已结贴  问题点数:20 回复次数:9 
在VC6.0里面做的程序,在2010版本里面编译有问题,请指教
kzpoint.rar (1.85 MB)



在2010版本里面编译,产生该问题,IntelliSense: 无法打开 源 文件 "fstream.h"

我在网上也找到该问题的解决方法:

有人说是因为我文件中使用 #include <iostream.h>的问题。
我查找了一下,有可能是这样的问题,我用的是#include <fstream.h>
又百度一下
      1. iostream类: 负责与控制台输入输出打交道, 这个我们已经很熟悉了。   注意: 实际具体又可以区分为:istream和ostream
      2. fstream类:   负责与文件输入输出打交道, 这个我们接触过。  注意: 实际具体又可以区分为:ifstream和ofstream
那我的问题就出在fstream类。
又百度一下,说是fstream是比较旧版的文件。。。一脸懵逼,又没说什么解决办法
后来既然少了msvcirtd.lib,那就去找这个文件。
然而网上并没有这个文件的下载,没办法,只好在VC6.0中查找,刚好找到,激动得要死。
然后放入VS2010的lib链接库中,并在程序中添加#pragma comment(lib,"msvcirtd.lib")
成功!!!!


主要是我现在从事的工作是模具设计,在编程方面只是有一点点知道,VC6.0版本是自己琢磨学习
的,是几年前模具设计做外挂的需要,因为VC6.0只能生成32位dll文件,现在因为模具设计软件
的需要,要使用64位dll文件,我计划采用2010版本来生成,但是出现以上的问题,请知道的指
点一下,或者把我提供的文件在2010VC里面编译一下,产生64位DLL文件,我参考一下,因为该类型的文件我有50-60个需要编译,
lspoint.rar (1.95 MB)
搜索更多相关主题的帖子: VC6.0 版本 编译 文件 lib 
2017-09-11 10:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
因为C++的标准头中没有 fstream.h,当然也没有 iostream.h 等等,也没有 stdio.h 等等
在上个世纪末,C++就引入了名字空间,增加了 fstream、iostream、cstdio 等等

代码就不看了,试着将 #include <fstream.h> 改为 #include <fstream>
试着将 fstream、ifstream、ofstream 改为 std::fstream、std::ifstream、std::ofstream
2017-09-11 10:17
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
谢谢rjsp版主回复,但是我还是没有编译通过,如果有时间的朋友,请帮忙编译一下
2017-09-11 10:58
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 3楼 jqs888
没有编译通过的话,你不肯贴出编译器给出的错误信息?! 算了,当我没说
2017-09-11 11:12
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
/******************************************************************************
             Copyright (c) 1999 Unigraphics Solutions, Inc.
                       Unpublished - All Rights Reserved

*******************************************************************************/
/*
The following example allows you to create a circle on an arbitrary
plane. The circle is defined by indicating a center position, followed
by a position on the circle itself. As you move the cursor to the latter
position, the motion callback (passed to
UF_UI_specify_screen_position) will render a visual representation of
the circle you're about to create, as well as a bounding box around the
circle, an arc from 15 degrees to 345 degrees with radius=1.0, and a
"rubberband" line from the circle center the cursor. This example
supports Design in Contet (that is, your Work part may be different
than your Displayed part).
*/
#include <stdio.h>
#include <uf_defs.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_csys.h>
#include <uf_vec.h>
#include <uf_disp.h>
#include <uf_curve.h>
#include <uf_mtx.h>
#include <uf_obj.h>
#include <stdlib.h>
#include <uf_view.h>
#include <math.h>
#include<iomanip>
#include <windows.h>
#include <iostream>   
#include <fstream>



/* Define a motion callback to render a visual representation of
 * the circle to be created, along with a bounding box around the
 * circle, an arc of radius 1.0, and a "rubberband" line from the
 * center to the cursor position.
 */
/*void motion_cb(double screen_pos[3] ,UF_UI_motion_cb_data_p_t motion_cb_data, void * data)
{
char str[100];
sprintf(str,"鼠标位置在t (%4.2f,%4.2f,%4.2f)",
screen_pos[0],screen_pos[1],screen_pos[2]);
uc1601(str,0);
}  */


static float diameter;   //=1;

static float LLA=5;   //=1;
static float LLB=5;   //=1;

static char tet[256]="1234";
static int ki=1;

static int xxxx1=1;
static int yyyy1=1;
static double wzjd2=1;
static double wznx=0.5;
static double wzny=0.5;

static char distance[100]={30,33,36,40,46};

static double x=0;
static double y=0;
  static  float k = 0;

typedef struct
{ UF_CURVE_arc_t  *arc;
double          abs_ctr[3];
double          matrix[9];
double          x_axis[3];
double          y_axis[3];
} my_motion_data_t;
/* Define a motion callback to render a visual representation of
* the circle to be created, along with a bounding box around the
* circle, an arc of radius 1.0, and a "rubberband" line from the
* center to the cursor position.
*/

static void motion_cb( double                   *screen_pos,
                      UF_UI_motion_cb_data_p_t  motion_cb_data,
                      my_motion_data_t        *my_data )
{



   
    UF_DISP_refresh();
    UF_MTX3_vec_multiply( screen_pos,my_data->matrix,my_data->arc->arc_center );
    UF_OBJ_disp_props_t     color;
    color.font=0;
    color.line_width=-1;
    UF_DISP_ask_closest_color_in_displayed_part(UF_DISP_RED_NAME,&color.color);
//    UF_DISP_display_temporary_arc(motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW, my_data->matrix ,0, 2*PI, my_data->arc->arc_center ,diameter , &color);
    double    wcs_center[3];






 UF_UI_set_status ("Q:单个,A:镜相四件,Z:Y轴镜相,X:X轴镜相,w:增加," ); //在ug右边状态栏 显示提示内容



   if (GetAsyncKeyState(65))
    {
  // uc1601("你按下了A",1);

       if(ki==1){
                   ki=4;
                   Sleep(100);
       }
       else if(ki==2){
                     ki=4;
                   Sleep(100);}      
       else if(ki==3){
                     ki=4;
                   Sleep(100);}        
       else if(ki==5){
                     ki=8;
                   Sleep(100);}      
       else if(ki==6){
                     ki=8;
                   Sleep(100);}      
       else if(ki==7){
                     ki=8;
                   Sleep(100);}      


   //  ki=4;
       UF_DISP_refresh();
    }


   if (GetAsyncKeyState(81))
    {
  // uc1601("你按下了Q",1);
 
       if(ki==2){
                   ki=1;
                   Sleep(100);
       }
       else if(ki==2){
                     ki=1;
                   Sleep(100);}      
       else if(ki==3){
                     ki=1;
                   Sleep(100);}      
       else if(ki==4){
                     ki=1;
                   Sleep(100);}         
       else if(ki==6){
                     ki=5;
                   Sleep(100);}      
       else if(ki==7){
                     ki=5;
                   Sleep(100);}      
       else if(ki==8){
                     ki=5;
                   Sleep(100);}            
      
      
      
    //   ki=1;
       UF_DISP_refresh();
    }


   if (GetAsyncKeyState(90))
    {
  // uc1601("你按下了z",1);
       if(ki==1){
                   ki=3;
                   Sleep(100);
       }
       else if(ki==2){
                     ki=3;
                   Sleep(100);}      
       else if(ki==4){
                     ki=3;
                   Sleep(100);}        
       else if(ki==5){
                     ki=7;
                   Sleep(100);}      
       else if(ki==6){
                     ki=7;
                   Sleep(100);}      
       else if(ki==8){
                     ki=7;
                   Sleep(100);}      

  // ki=3;
       UF_DISP_refresh();
    }

   if (GetAsyncKeyState(88))
    {
  // uc1601("你按下了x",1);

       if(ki==1){
                   ki=2;
                   Sleep(100);
       }
       else if(ki==3){
                     ki=2;
                   Sleep(100);}      
       else if(ki==4){
                     ki=2;
                   Sleep(100);}        
       else if(ki==5){
                     ki=6;
                   Sleep(100);}      
       else if(ki==7){
                     ki=6;
                   Sleep(100);}      
       else if(ki==8){
                     ki=6;
                   Sleep(100);}      

 //   ki=2;
       UF_DISP_refresh();
    }


   if (GetAsyncKeyState(83))
    {
  // uc1601("你按下了S",1);

       if(ki==1){
                   ki=5;
                   Sleep(100);
       }
       else if(ki==2){
                     ki=6;
                   Sleep(100);}
       else if(ki==3){
                     ki=7;
                   Sleep(100);}
       else if(ki==4){
                     ki=8;
                   Sleep(100);}
       else if(ki==5){
                     ki=1;
                   Sleep(100);}
       else if(ki==6){
                     ki=2;
                   Sleep(100);}
       else if(ki==7){
                     ki=3;
                   Sleep(100);}
       else if(ki==8){
                     ki=4;
                   Sleep(100);}





       UF_DISP_refresh();
    }




/*   if (GetAsyncKeyState('E'))
    {
   //uc1601("你按下了w",1);
   diameter += 0.5;
       UF_DISP_refresh();
    }
*/

    tag_t wcs;
    UF_CSYS_ask_wcs(&wcs);
    double csys_or[ 3 ] = {0,0,0};
    tag_t wcs_new;
    tag_t mat_id;
    double abs_point[3],wcs_point[3];
    UF_CSYS_create_matrix(my_data->matrix,&mat_id);
    UF_CSYS_create_temp_csys(csys_or,mat_id, &wcs_new);

    UF_DISP_set_display(UF_DISP_SUPPRESS_DISPLAY);
    UF_CSYS_set_wcs(wcs_new);
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS, my_data->arc->arc_center,UF_CSYS_WORK_COORDS ,abs_point);
    UF_CSYS_set_wcs(wcs);
    UF_CSYS_map_point (UF_CSYS_WORK_COORDS ,abs_point,UF_CSYS_ROOT_WCS_COORDS, wcs_point);
    UF_DISP_set_display(UF_DISP_UNSUPPRESS_DISPLAY);

 







    double corner_pt12[3]={wcs_point[0]-LLA/2,wcs_point[1]-LLB/2,wcs_point[2]};      //定位极点
    double corner_pt22[3]={wcs_point[0]-LLA/2,wcs_point[1]+LLB/2,wcs_point[2]};      //定位极点
    double corner_pt32[3]={wcs_point[0]+LLA/2,wcs_point[1]+LLB/2,wcs_point[2]};      //定位极点
    double corner_pt42[3]={wcs_point[0]+LLA/2,wcs_point[1]-LLB/2,wcs_point[2]};      //定位极点
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,corner_pt12 ,UF_CSYS_WORK_COORDS,corner_pt12);
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,corner_pt22 ,UF_CSYS_WORK_COORDS,corner_pt22);
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,corner_pt32 ,UF_CSYS_WORK_COORDS,corner_pt32);
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,corner_pt42 ,UF_CSYS_WORK_COORDS,corner_pt42);
    UF_DISP_display_temporary_line(motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,corner_pt12, corner_pt22, &color);   
    UF_DISP_display_temporary_line(motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,corner_pt22, corner_pt32, &color);   
    UF_DISP_display_temporary_line(motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,corner_pt32, corner_pt42, &color);   
    UF_DISP_display_temporary_line(motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,corner_pt42, corner_pt12, &color);   




























//    double tet_coord [ 3 ]={wcs_point[0]+diameter/2,wcs_point[1]-diameter/2,wcs_point[2]};
    double tet_coord [ 3 ]={wcs_point[0],wcs_point[1],wcs_point[2]};
    double    char_size=6;
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,tet_coord ,UF_CSYS_WORK_COORDS,tet_coord);
    UF_DISP_display_temporary_text( motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,tet , tet_coord ,UF_DISP_TOPLEFT,&color,char_size, 1);
    UF_CSYS_map_point (UF_CSYS_WORK_COORDS ,tet_coord ,UF_CSYS_ROOT_WCS_COORDS, tet_coord);
    x=wcs_point[0];
    y=wcs_point[1];

//////设置XY的坐标的整数


  //   IF/x>=0,wznx=0.5;
 //    IF/x<0,wznx=-0.5;
  //   IF/y>=0,wzny=0.5;
  //   IF/y<0,wzny=-0.5;
//////设置XY的坐标的整数

//////设置XY的坐标的整数
   if(x>=0)
   {
    wznx=0.5;   
   }
      if(x<0)
   {
    wznx=-0.5;   
   }
   if(y>=0)
   {
    wzny=0.5;  
   }
   if(y<0)
   {
    wzny=-0.5;  
   }

     xxxx1=x/wzjd2+wznx;
     x=xxxx1*wzjd2;
     yyyy1=y/wzjd2+wzny;
     y=yyyy1*wzjd2;






    char name[100]="";
    sprintf(name,"X = %.2f",x);
    tet_coord [1]= tet_coord [1]-char_size*2;
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,tet_coord ,UF_CSYS_WORK_COORDS,tet_coord);
    UF_DISP_display_temporary_text( motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,name , tet_coord ,UF_DISP_TOPLEFT,&color,char_size, 1);
    UF_CSYS_map_point (UF_CSYS_WORK_COORDS ,tet_coord ,UF_CSYS_ROOT_WCS_COORDS, tet_coord);
    sprintf(name,"Y = %.2f",y);
    tet_coord [1]= tet_coord [1]-char_size*2;
    UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS ,tet_coord ,UF_CSYS_WORK_COORDS,tet_coord);
    UF_DISP_display_temporary_text( motion_cb_data->view_tag,UF_DISP_USE_WORK_VIEW,name , tet_coord ,UF_DISP_TOPLEFT,&color,char_size, 1);
}


static int do_ugopen_api(double *vec_dat)
{
    int  pos_resp=-1;

    tag_t           saved_wcs, mtx_id, csys_id,view_tag;
    double            plane_matrix[9], plane_origin[3],    x_vec[3], y_vec[3], arc_edge_pos[3];
    double           root_origin[3] = {0.0, 0.0, 0.0};
    double           work_origin[3];
    UF_CURVE_arc_t    arc;
    my_motion_data_t  my_data;
    my_data.arc    = &arc;
    arc.start_angle =   0.0;
    arc.end_angle   = TWOPI;   
    UF_CSYS_ask_wcs( &saved_wcs );
    UF_CSYS_ask_csys_info(saved_wcs,&mtx_id,plane_origin);
    UF_CSYS_ask_matrix_values(mtx_id,plane_matrix);
    UF_VEC3_copy(plane_origin,my_data.abs_ctr);
    uc6434("", 4, NULL_TAG, plane_matrix);//控制是否摆正视图
    UF_MTX3_x_vec( plane_matrix, x_vec );
    UF_MTX3_y_vec( plane_matrix, y_vec );
    UF_CSYS_map_point( UF_CSYS_ROOT_COORDS, x_vec,UF_CSYS_WORK_COORDS, x_vec );
    UF_CSYS_map_point( UF_CSYS_ROOT_COORDS, y_vec,UF_CSYS_WORK_COORDS, y_vec );
    UF_CSYS_map_point( UF_CSYS_ROOT_COORDS, root_origin,UF_CSYS_WORK_COORDS, work_origin );
    UF_VEC3_sub( x_vec, work_origin, my_data.x_axis );
    UF_VEC3_sub( y_vec, work_origin, my_data.y_axis );
    UF_MTX3_initialize( my_data.x_axis, my_data.y_axis,my_data.matrix );
    UF_CSYS_create_matrix( my_data.matrix,&arc.matrix_tag );
    UF_UI_specify_screen_position("",(UF_UI_motion_fn_t)motion_cb,(void *)&my_data,arc_edge_pos,&view_tag,&pos_resp );

    return pos_resp;
}

/*ARGSUSED*/
void ufusr(char *param, int *retcode, int param_len)
{
    if (!UF_initialize())
    {

        x=0;
        y=0;
        diameter=8.0;
        ki=4;

   
char buffer[256];
char buffer1[256][256];
int i=0;
std::fstream out;
out.open("C:\\LINE.dat",ios::in);
while(!out.eof())
{
   i++;
   out.getline(buffer,256,'\n');//getline(char *,int,char) 表示该行字符达到256个或遇到换行就结束
      // tet=(buffer,256,'\1');
 // uc1601(buffer,1);
    strcpy(buffer1[i], buffer);
 // uc1601(buffer1[i],1);
 //  cout<<"第"<<i<<"行内容 "<<buffer<<endl;
}

////读出数据

LLA=atof(buffer1[1]);
LLB=atof(buffer1[2]);
ki=atoi(buffer1[3]);

////读出数据


    //uc1601(strcpy(ki,cbuf),1);
    //    char cp2 [ ] [ 38 ]={"单个指定","四面镜相"};
    //    int response;
    //    response=uc1603("", 0, cp2, 2 );
    //        if (response==6)ki=1;
    //        else ki=0;
        double Direction[3];
        tag_t wcs_id,matrix_id;
        double csys_origin[3],mat[9];
        UF_CSYS_ask_wcs(&wcs_id);
        UF_CSYS_ask_csys_info(wcs_id,&matrix_id,csys_origin);
        UF_CSYS_ask_matrix_values(matrix_id,mat);
        UF_VEC3_copy(&mat[6],Direction);
        ;
        if ( do_ugopen_api(Direction)!=3)
        {
           ofstream SaveFile("C:\\ddd.dat");
              SaveFile << x;
              SaveFile << endl;           //写入换行符
              SaveFile << y;
              SaveFile << endl;           //写入换行符
              SaveFile << ki;
            SaveFile.close();
        }
   
    }
}
int ufusr_ask_unload(void)
{
    UF_DISP_refresh();
    return (UF_UNLOAD_IMMEDIATELY);
}
2017-09-11 12:38
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
std::fstream out;
out.open("C:\\LINE.dat",ios::in);   

错误    8    error C2653: “ios”: 不是类或命名空间名称    g:\2017-work\09-08\kzpoint\kzpoint\kzpoint.cpp    450    1    kzpoint






2017-09-11 12:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用jqs888在2017-9-11 12:41:24的发言:

std::fstream out;
out.open("C:\\LINE.dat",ios::in);   
 
错误    8    error C2653: “ios”: 不是类或命名空间名称

ios::in 改为 std::ios::in
2017-09-11 14:04
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
std::fstream out;
out.open("C:\\LINE.dat",std::ios::in);


        if ( do_ugopen_api(Direction)!=3)
        {
           std::ofstream SaveFile("C:\\ddd.dat");
              SaveFile << x;
              SaveFile << std::endl;           //写入换行符
              SaveFile << y;
              SaveFile << std::endl;           //写入换行符
              SaveFile << ki;
            SaveFile.close();
        }


增加了五个 std::

还剩下这一个错误问题:
错误    11    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏    G:\2017-WORK\09-08\kzpoint\kzpoint\LINK    kzpoint


2017-09-11 15:12
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
              SaveFile << endl;           //写入换行符
              SaveFile << y;
              SaveFile << endl;         //写入换行符



endl前面不增加std::,是这样的错误

因为我对vc只是知道一点点,请提供一下解决的思路
2017-09-11 15:16
jqs888
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-1-9
得分:0 
谢谢rjsp
2017-09-15 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480610-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046625 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved