还是有错误,真的快晕了!!!还得麻烦一下!!谢了!!!

sybook 2004-04-09 01:19:00
此程序是把数字转换为大写汉字!!请教了ymbymb(毛病大哥)和szclm(IT的民工) 我加了一个主程序来运行,可是出现了一个错误,请高手们指点一二!谢了!
#include "iostream.h"
#include "afx.h"

void TOCUPER(double RMB,char *RMBHZ);

void main()
{
double n;
char str[];
memset(str,0,100);
cout<<"请输入要转换的数字";
cin>>n;
TOCUPER(n,str);
cout<<str<<endl;
}

void TOCUPER(double RMB,char *RMBHZ)
{

CString snum = "零壹贰叁肆伍陆柒捌玖 ";
CString stmp1 = "元拾佰仟万拾佰仟亿拾佰仟 ";
CString stmp2 = "角分 ";
CString sout;

char buf[20];
sprintf(buf, "%d", (int)RMB);

int nLen = strlen(buf);

BOOL isZero = FALSE;
for(int i = nLen - 1; i >= 0; i--)
{
CString tmp;

tmp = snum.Mid((buf[i] - '0') * 2, 2);

if(buf[i] != '0')
{
tmp += stmp1.Mid((nLen - 1 - i)*2, 2);

isZero = FALSE;
}

else if( (nLen - 1 - i)*2 == 8 || (nLen - 1 - i)*2 == 16 )
{
sout = stmp1.Mid((nLen - 1 - i)*2, 2) + sout;
}

if( !isZero )

sout = tmp + sout;
if( buf[i] == '0' )
isZero = TRUE;
}

if( sout.Find( "亿万" ) != -1 )
sout.Replace( "亿万", "亿" );

sprintf(buf, "%02d ", (int)((RMB - (int)RMB) * 100 + 0.5));

if(buf[1] == '0')
{

buf[1] = 0;

if(buf[0] == '0') buf[0] = 0;
}

nLen = strlen(buf);

for(i = 0; i < nLen; i++)
{
CString tmp;
tmp = snum.Mid((buf[i] - '0') * 2, 2);
if(buf[i] != '0') tmp += stmp2.Mid(i*2, 2);
sout += tmp;
}

if( nLen == 0 )
{
//加上一个整字
sout += "整 ";
}

memcpy(RMBHZ, sout, sout.GetLength());
RMBHZ[sout.GetLength()] = 0;
}

或者把主函数换成
void main()
{
double RMB = 3423434.45;
char RMBHZ[100];
TOCUPER(RMB, RMBHZ);
}
都会出现这样的问题:
Link......
nafxcwd.lib(thrdcore.obj) : error LNK2001:unresolved external symbol_endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001:unresolved external
symbol_beginrhreadex
Debug/TOCUPER.exe:fatal error LNK1120:2 unresolved externals
Error executing link.exe
请教如何解决!!!!谢谢!
...全文
38 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymbymb 2004-04-09
  • 打赏
  • 举报
回复
另外在你的project->setting->general 中选择Use MFC in a static library
UDX协议 2004-04-09
  • 打赏
  • 举报
回复
简单的方法是写个结构
1 2 3 4 5 6 7 8 9 0
壹.................

一个结构
struct SAMPLE
{
byte nuber;
char hz[2];
}
做一个大数组
SAMPLE[10]并始化。用起来还简单。
ymbymb 2004-04-09
  • 打赏
  • 举报
回复
str没有分配空间;照下面改
void main()
{
double n;
char str[100];
memset(str,0,100);
cout<<"请输入要转换的数字";
cin>>n;
TOCUPER(n,str);
cout<<str<<endl;
}
xstring 2004-04-09
  • 打赏
  • 举报
回复
要不就去 project settings 里面将Single Thread Library对应的换成Multi Thread Library (Debug)或Multi Thread Dll Library (Debug)
itmaster 2004-04-09
  • 打赏
  • 举报
回复
学习
xstring 2004-04-09
  • 打赏
  • 举报
回复
在include后加上这个

#ifdef _DEBUG
#pragma comment (linker, "/MTd")
#else
#pragma comment (linker, "/MT")
#endif

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧