📄 subject_62498.htm
字号:
<blockquote><p>
回复者:fiction 回复日期:2003-11-27 13:12:58
<br>内容:这是一个将MIDI格式转换为.hex文件,然后再转换为.h文件的,首先你那里要有MIDI格式的文件
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 09:11:00
<br>内容:大侠~~~~
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-28 09:31:04
<br>内容:稍等一会儿,我刚才看到
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-28 09:38:41
<br>内容:给个.mid的测试文件,小一点的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 09:50:29
<br>内容:来了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 09:51:33
<br>内容:呵呵
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-28 10:30:10
<br>内容:你出错的原因是文件打开出错了,Fdata为空,然后执行下面操作肯定会出错<BR>我在打开文件出错的地方加了判断,但是return;时仍然出错,我也没有调出来,我开个帖子帮你问问,如果你选择一个路径中没有空格的文件,执行应该没有问题的,还有就是,选择了文件或保存文件后,要使用它的全路径<BR> TCHAR szFilters[]=_T("HEX files(*.hex)|*.hex|All files(*.*)|*.*||");<BR> CFileDialog m_Dialog1(FALSE,_T("hex"),_T("*.hex"),OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFilters);<BR> <BR> <BR> if(m_Dialog1.DoModal()==IDOK)<BR> {<BR> // m_ConvertName=m_Dialog1.GetPathName(); <BR> m_ConvertName=m_Dialog1.GetPathName();<BR> UpdateData(FALSE);<BR>// UpdateData(TRUE);<BR> char str_Convert[40];<BR> char str_File[40];<BR> sprintf(str_Convert,"%s",m_ConvertName); <BR> sprintf(str_File,"%s",m_Filename);<BR> <BR> // void main(int argc, char *argv[])<BR> //{<BR> int argc;<BR>// char *argv[2];<BR> argc=2;<BR> //argv[0]="convert"<BR>// argv[1]=str_File;<BR>// argv[2]=str_Convert;<BR> char ch;<BR> unsigned int fifo_size,SG_INT,int_status;<BR> BYTE volume,tempo;<BR> BYTE playtimer_h=0,playtimer_m=0,playtimer_l=0;<BR> BYTE min=0,sec=0;<BR> BOOL exit_flag=1,mute=0;<BR> unsigned int send_max,send_size;<BR> unsigned char r_data;<BR> unsigned char PlayStatus;<BR> <BR> if (argc>1)<BR> {<BR> Fdata = fopen(str_Convert,"wb");<BR> if(!Fdata)<BR> {<BR> CString str;<BR> str.Format("打开 %s 文件失败!",str_Convert);<BR> MessageBox(str);<BR> delete Fdata;<BR> return;<BR> }<BR> <BR> if (!GetMIDIData(str_File)) <BR> {<BR> //printf("Can't Read MIDI File\n");<BR> System_Exit();<BR> exit(1);<BR> }<BR> if (LoadHeaderSMF(smf_data))<BR> { <BR> //printf("Header error\n"); <BR> System_Exit(); <BR> exit(1); <BR> }<BR> if (LoadDataSMF())<BR> {<BR> //printf("Loading Error\n");<BR> System_Exit(); <BR> exit(1); <BR> }<BR> <BR> send_max=get_sendbuf_free_size(); <BR> ConvertSMF(&PlayStatus,send_max,0);<BR> fifo_size=255; <BR> <BR> if (fifo_size>=data_cnt)<BR> send_size=data_cnt;<BR> else<BR> send_size=fifo_size;<BR> <BR> WriteRegisterTone(send_size);<BR> <BR> while(data_cnt>0)<BR> {<BR> send_max=get_sendbuf_free_size();<BR> ConvertSMF(&PlayStatus,send_max,0);<BR> <BR> fifo_size=255; <BR> <BR> if (fifo_size>=data_cnt) <BR> send_size=data_cnt; <BR> else <BR> send_size=fifo_size;<BR> <BR> WriteRegisterTone(send_size);<BR> }<BR> fclose(Fdata);<BR> <BR> }<BR> <BR> else<BR> {<BR> ;<BR> //printf("\n***************************************\n");<BR> <BR> //printf("Command Format: \nconvert Midi_file Native_Midi_file \n");<BR> //printf("e.g.: \nconvert short1.mid native_data.hex \n");<BR> <BR> //printf("***************************************\n\n");<BR> <BR> }<BR> }<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 10:36:37
<br>内容:好感谢你哦<BR>其实如果改变路径名,保存是可以,但是在新保存的文件里面是空的,就是没有执行下面的语句
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-28 10:40:27
<br>内容:不为空,我试了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 10:44:47
<br>内容:我说的是第二、三的按钮,如果和第一个的路径不同的话,可以保存一个相应的文件在所选的路径下面,但是里面没有转换过的文件,不仅仅是空的,连整个程序都会退出呢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fiction 回复日期:2003-11-28 10:59:40
<br>内容:我知道为什么是空的了,第一个打开的文件,也就是midi文件的路径没有保存,所以第二个文件如果改变路径就会在新的路径下面找不到midi格式的文件,想转换当然也就没得转换了,那这个问题该怎样解决?要将路径保存在什么地方第二个文件才可以获得呢?<BR>2003-11-28 11:01:15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -