VC,MFC为什么赋值不成功?

千辛万苦终于在我做好的MFC中添加了别人的C语言编写的两个.C文件和头文件,经编译没有错误。我需要这两个C文件进行数据计算。我调用Mjd这个C文件里面的变量然后复制变量q... 千辛万苦终于在我做好的MFC中添加了别人的C语言编写的两个.C文件和头文件,经编译没有错误。
我需要这两个C文件进行数据计算。

我调用Mjd这个C文件里面的变量 然后复制变量qq
extern double Mjd;
double qq;
qq = Mjd;
调试这儿时候,可以看到Mjd的值是有的,但qq的值就是赋不进去,=0。。。。why?
Mjd 53107.669409722221
qq 0.00000000000000000
然后如果我直接输出Mjd的值也是0.。。。。求助大牛!!!
展开
 我来答
weiyinwu
2012-03-29 · TA获得超过1540个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:1140万
展开全部
这代码是没有问题的,如果这时的qq是0,那么Mjd的值一定也是0.
请将调试时的图片发来看一下。
你使用extern字来引用Mjd,那么你的Mjd应该是全局函数,你这里说的C文件是计算用的,你有没有将C实例化后计算了一个值然后再赋给Mjd?如果没有实例化C或调用C中的函数计算,那么你的Mjd的值应该是0
更多追问追答
追问
Mjd是头文件里面声明的一个变量。。所以应该是全局变量吧。。。将C实例化后计算了一个值然后再赋给Mjd  是什么意思?但调试的时候可以看到Mjd的值,就是我问题里面放的那个。。能和你详谈么? 我的qq号472928799
追答
你的C文件是导入的吧。如果使用C中的类或函数来计算,那么要定一个对象或调用C中的函数,通过C中的计算然后才会Mjd有值。
比如,有个文件cal.h及cal.cpp
cal.h中是
class CCal
{
public:
int calsum(int a,int b);
CCal();
virtual ~CCal();
};
cal.cpp文件
int s;
CCal::CCal()
{}
CCal::~CCal()
{}
int CCal::calsum(int a, int b)
{ s=a+b;
return s;}
上述中的s,就是全局变量,但是在这个文件中没有给它赋值,如果你在另外的文件中引用
extern int s;
再输出s那么s也是0,没有计算,所以值就是0.
如果你在引用时,定义一个对象:
CCal a;
a.calsum(5,6);
extern int s;
这样,s就有值了,结果就是11
xiaobushi3
2012-03-31
知道答主
回答量:27
采纳率:0%
帮助的人:11.8万
展开全部
应该就是个更新的问题吧,你说的值没赋进去是看的Edit框中的显示吧?用UpdateData(false);更新一下试试!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月光之魅
2012-03-29 · 超过21用户采纳过TA的回答
知道答主
回答量:91
采纳率:100%
帮助的人:44.2万
展开全部
你把Mjd声明放到头文件中 试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甜纸啊3N
2012-03-29 · 超过14用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:35.9万
展开全部
看看外部变量有没有初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式