上一页 1 ··· 41 42 43 44 45
摘要: C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为:hello.exe Shiqi Yu那么,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Sh 阅读全文
posted @ 2013-05-07 11:56 MMLoveMeMM 阅读(432) 评论(0) 推荐(0)
摘要: C++实现FFT算法#include "iostream.h"#include "stdio.h"#include "math.h"#include "stdlib.h"#include "malloc.h"#define PI (float)3.1415926//复数结构体typedef struct{ float re; float im;}complex;//定义旋转因子complex W(int N,int n){ complex out; out.re=(float)cos(2*PI* 阅读全文
posted @ 2013-05-07 00:23 MMLoveMeMM 阅读(2097) 评论(0) 推荐(0)
摘要: 今天验证FFT算法,需要产生一批数据,进行人为输入有点不切实际,所以就想到使用随机数进行产生.C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647.Demo程序如下:#include<stdio.h>#include<stdlib.h>void main(){in 阅读全文
posted @ 2013-05-06 22:55 MMLoveMeMM 阅读(504) 评论(0) 推荐(0)
摘要: Linux 下使用数学函数今天在编译一个用到log函数的c文件时,遇到一个错误:/tmp/ccQuh0ns.o(.text+0x2bb): In function `Compute':: undefined reference to `log'到网上查了一下这个问题,原因及解决方法如下:出现这个错误是因为编译器找不到log的具体实现.虽然我们包括了正确的头文件,但是我们在编译的时候还是要连接确定的库.在Linux下,为了使用数学函数,我们必须和数学库连接,为此我们要加入 -lm 选项。gcc select.c -o select -lm这样就搞定了!<artcle fro 阅读全文
posted @ 2013-05-06 18:02 MMLoveMeMM 阅读(1780) 评论(0) 推荐(0)
摘要: 常常发现一个程序启动后,再想启动同样的这个程序,它会提示程序已经启动,其中一个典型的PPS播放器,它可以设置可以打开多个PPS播放器,也可以设置只能够启动一个PPS播放器.只能够启动一个实现如下#include<windows.h>#include<iostream.h>DWORD WINAPI FuncOne(LPVOID lpParameter);DWORD WINAPI FuncTwo(LPVOID lpParameter);void main(){HANDLE hThreadone;HANDLE hThreadtwo;HANDLE hMutex;hMutex=C 阅读全文
posted @ 2013-05-03 11:26 MMLoveMeMM 阅读(159) 评论(0) 推荐(0)
摘要: 关键代码段在很多硬件系统(比如Linux,ucOS等等)也存在,只是系统开发用于来保护现场,根据上Demo,更改如下:#include<windows.h>#include<iostream.h>DWORD WINAPI FuncThreadone(LPVOID lpParameter);DWORD WINAPI FuncThreadTwo(LPVOID lpParameter);int index=0;int tickets=100;HANDLE hMutex;HANDLE m_hEvent;CRITICAL_SECTION g_cs;void main(){HAND 阅读全文
posted @ 2013-05-02 16:59 MMLoveMeMM 阅读(159) 评论(0) 推荐(0)
摘要: 首先分析要使用到的几个API函数:This function creates a named or an unnamed event object.HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPTSTR lpName ); ParameterslpEventAttributes[in] Ignored. Must be NULL.如果忽略,必须设置为NULLbManualReset[in] Boolean that spec... 阅读全文
posted @ 2013-05-02 16:50 MMLoveMeMM 阅读(282) 评论(0) 推荐(0)
摘要: 首先按照正常的举出一Demo,如下:#include<windows.h>#include<iostream.h>DWORD WINAPI FuncThreadone(LPVOID lpParameter);DWORD WINAPI FuncThreadTwo(LPVOID lpParameter);int index=0;int tickets=100;void main(){HANDLE hThread1,hThread2;hThread1=CreateThread(NULL,0,FuncThreadone,NULL,0,NULL);hThread2=CreateT 阅读全文
posted @ 2013-05-02 16:11 MMLoveMeMM 阅读(405) 评论(0) 推荐(0)
摘要: 首先查看一下MSDN几个和多线程有关的API函数:This function creates a thread to execute within the address space of the calling process.HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, DWORD cbStack, LPTHREAD_START_ROUTINE lpStartAddr, LPVOID lpvThreadParam, DWORD fdwCreate, LPDWORD lpIDThread); Parameterslps... 阅读全文
posted @ 2013-05-02 15:32 MMLoveMeMM 阅读(216) 评论(0) 推荐(0)
摘要: ContentsIntroductionC Language ApproachHandlesCalling ConventionsException SafetyAdvantagesDisadvantagesC++ Naive Approach: Exporting a ClassWhat You See Is Not What You GetException SafetyAdvantagesDisadvantagesC++ Mature Approach: Using an Abstract InterfaceHow This WorksWhy This Works With Other 阅读全文
posted @ 2013-04-28 16:53 MMLoveMeMM 阅读(536) 评论(0) 推荐(0)
摘要: This article shows you how to create a Win32 and MFC DLL to dynamically link a Library to your application. Microsoft Foundation Class (MFC) library can be used to create simplified DLLs. The MFC supports two types of DLLs, regular and extension:Regular DLL using shared MFC DLLRegular DLL with MFC s 阅读全文
posted @ 2013-04-28 15:43 MMLoveMeMM 阅读(283) 评论(0) 推荐(0)
摘要: VC多线程编程(转)VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:voidCSingleThreadDlg::OnSleepSixSecond(){Sleep(6000);//延时6秒} 编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗.. 阅读全文
posted @ 2013-04-21 14:14 MMLoveMeMM 阅读(149) 评论(0) 推荐(0)
摘要: 进一步再举一例:本例要实现一个绘制一个椭圆形功能<1> : 根据前一篇"vs2010 MFC DLL创建和调用"文章新建MFC Dll工程,假设工程名CMFCDLLDemo02;<2> : 在CMFCDLLDemo02.h中添加:#include "resource.h"// main symbols// CCMFCDLLDemo02App// See CMFCDLLDemo02.cpp for the implementation of this class//extern "C" void PASCAL E 阅读全文
posted @ 2013-04-21 13:31 MMLoveMeMM 阅读(359) 评论(0) 推荐(0)
摘要: 下面写一个用DLL访问注册表的程序:步骤如下:<1> : 新建一个DLL 工程:程序如下:#include<afx.h>#include"dll5.h"_declspec(dllexport) void _stdcall WriteToWinfile(LPCTSTR appname,LPCTSTR keyname,LPCTSTR str){ WriteProfileString(appname,keyname,str);}_declspec(dllexport) void _stdcall ReadFromWinFile(LPCTSTR appnam 阅读全文
posted @ 2013-04-21 00:02 MMLoveMeMM 阅读(213) 评论(0) 推荐(0)
摘要: WIN32 DLL创建动态链接库.步骤如下:<1> : 先开发一个DLL动态链接库:程序如下:#include<afx.h>_declspec(dllexport) void _stdcall WriteToWinfile(LPCTSTR appname,LPCTSTR keyname,LPCTSTR str){ WriteProfileString(appname,keyname,str);}_declspec(dllexport) void _stdcall ReadFromWinFile(LPCTSTR appname,LPCTSTR keyname,LPCTST 阅读全文
posted @ 2013-04-21 00:01 MMLoveMeMM 阅读(347) 评论(0) 推荐(0)
摘要: <1> :每点对应的实际幅度等于fft后对应点实部和虚部的平方根再乘以2/N,N是采样点数,不过直流分量即第一点须除N幅值:(假设你只须分析x次以下谐波)for(i=0;i<x;i++){W[i]=sqrt(datar[i]*datar[i]+datai[i]*datai[i]);W[i]=W[i]*2/N;}W[0]=W[0]/2;功率谱密度P(f)=datar[i]*datar[i]+datai[i]*datai[i];功率P为P(f)从0到fs的积分;fs为你的采样频率;因为实数fft后会使原信号幅值翻N/2倍,直流分量即第一点翻N倍 我们要得到的一般是原信号的幅值 所 阅读全文
posted @ 2013-04-17 01:37 MMLoveMeMM 阅读(6887) 评论(0) 推荐(0)
摘要: 程序列如下:PublicFunctionfft(ByRefData()AsDouble)AsDouble() ReDimffft(128,2)AsDoubleDimlengthAsIntegerlength=UBound(Data,1)+1 'DimnumArray(length-1,2)AsDouble DimindexAsIntegerDimnum5AsIntegerDimnum6AsIntegerDimnum7AsIntegerDimnum10AsIntegerDimnum3AsIntegerDimnum2AsIntegerDimnum11AsIntegerDimnum9AsIn 阅读全文
posted @ 2013-04-17 01:14 MMLoveMeMM 阅读(853) 评论(0) 推荐(0)
摘要: 窗体上放一个picturebox,名称改为picI_FFT。在窗体中输入以下代码OptionExplicit '*模块******************************************************** 'FFT0数组下标以0开始 'AR()数据实部AI()数据虚部 'N数据点数,为2的整数次幂 'NI变换方向1为正变换,-1为反变换 '*************************************************************** ConstfftIn=128 ConstPi=3.141 阅读全文
posted @ 2013-04-17 01:12 MMLoveMeMM 阅读(502) 评论(0) 推荐(0)
摘要: 图像应用参考链接 : http://www.360doc.com/content/10/1112/16/4558963_68786911.shtml谢谢提供链接网站. 阅读全文
posted @ 2013-04-17 01:09 MMLoveMeMM 阅读(521) 评论(0) 推荐(0)
摘要: FFT知识回顾:FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。 虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。 现在圈圈就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。 采样得到的数字信号,就 阅读全文
posted @ 2013-04-17 01:07 MMLoveMeMM 阅读(430) 评论(0) 推荐(0)
摘要: 今天把vs2010重新修复重装了,曾经所有崩溃现象基本上不存在,一直以为是AMD芯片拼不过wintel的原因,不过wintel开发软件放到其他PC上运行比AMD上编译出来的要稳定一些,曾今做了一个软件,在AMD上编译通过,到wintel上运行经常报错,结果查看错误报文,大致用english说不兼容AMD某个寄存器,所以立即改在wintel上编译,救过就OK了.说了几句无关的话,只是太无聊了,所以聊一聊.<1> : 创建DLL工程:选MFC Template,然后右侧选择MFC DLL项,点击OK<2> : 一般的到这一步可以选择"Finish"< 阅读全文
posted @ 2013-04-16 23:48 MMLoveMeMM 阅读(5647) 评论(0) 推荐(0)
摘要: 一、数字音频基础知识 Fourier级数: 任何周期的波形可以分解成多个正弦波,这些正弦波的频率都是整数倍。级数中其他正线波的频率是基础频率的整数倍。基础频率称为一级谐波。 PCM: pulse code modulation,脉冲编码调制,即对波形按照固定周期频率采样。为了保证采样后数据质量,采样频率必须是样本声音最高频率的两倍,这就是Nyquist频率。 样本大小:采样后用于存储振幅级的位数,实际就是脉冲编码的阶梯数,位数越大表明精度越高,这一点学过数字逻辑电路的应该清楚。 声音强度: 波形振幅的平方。两个声音强度上的差常以分贝(db)为单位来度量, 计算公式如下: 20*log(A1/A 阅读全文
posted @ 2013-04-16 20:39 MMLoveMeMM 阅读(305) 评论(0) 推荐(0)
摘要: 今天从i386内核编译转换到ARM内核编译上遇到一点细节问题,写下来:<1> : 下载linux-2.6.23内核;<2> : 进入linux-2.6.23内核根目录,输入make menuconfig,具体默认是哪个CPU,要参考根目录下的ARCH = (kernel type指定)<3> : 配置好kernel后,保存退出.<4> : make zImage即可,如果ARCH = i386,那么在ARCH/i386/boot目录下就会产生zImage镜像文件;<5> : 上面的适合计算机等同类型的CPU,不适合ARM,那么就要编译 阅读全文
posted @ 2013-04-15 00:13 MMLoveMeMM 阅读(377) 评论(0) 推荐(0)
摘要: TFTP32工具:http://tftpd32.jounin.net/tftpd32_download.htmlU-boot :ftp://ftp.denx.de/pub/u-boot/ 阅读全文
posted @ 2013-04-14 20:33 MMLoveMeMM 阅读(160) 评论(0) 推荐(0)
摘要: 1.1 U-Boot工作过程U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能硬件设备初始化加载U-Boot第二阶段代码到RAM空间设置好栈跳转到第二阶段代码入口 (2)第二阶段的功能初始化本阶段使用的硬件设备检测系统内存映射将内核从Flash读取到RAM中为内核设置启动参数调用内核1.1.1 U-Boot启动第一阶段代码分析 第一阶段对应的文件是cpu/arm920t/start.S和board/samsung/mini2440/lowlevel_init.S。 U-Boot启动第一阶段流程如下:图 2.1 U-Boot启动第一阶段流程 根据cpu/arm 阅读全文
posted @ 2013-04-14 20:05 MMLoveMeMM 阅读(441) 评论(0) 推荐(0)
摘要: 配置tftp方法一:(推荐方法)Ubuntu10.04 测试通过1.安装TFTP软件sudo apt-get install tftp-hpa tftpd-hpatftp-hpa是客户端,tftpd-hpa是服务器端2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)sudo chmod 777 ~/tftpboot3.配置TFTP服务器sudo gedit /etc/default/tftpd-hpa将原来的内容为:# /etc/default/tftpd-hpaTFTP_USERNAME= 阅读全文
posted @ 2013-04-14 18:37 MMLoveMeMM 阅读(231) 评论(0) 推荐(0)
摘要: 在ubuntu系统下,进行内核编译时,出现标题所示错误,按照终端显示的,如下面图片所示:显示在编译的linux内核的arch/i386/boot/boot.h的第110行需要修改,这个是一个X86寄存器,如果是主机是intel CPU,那么不会出现这种问题,一般出现为非intel主机.修改如下:将110行的'r'修改成'q'即可以编译成功了. 阅读全文
posted @ 2013-04-11 22:19 MMLoveMeMM 阅读(1293) 评论(0) 推荐(0)
摘要: 现象如下:(下面是网上抄的,我本人是英文的,不方便看,就当下面是翻译的吧!),大致信息如下scripts/basic/fixdep.c:300: 警告: 未使用的变量 ‘s’scripts/basic/fixdep.c: 在函数 ‘print_deps’ 中:scripts/basic/fixdep.c:337: 错误: ‘st’ 的存储大小未知scripts/basic/fixdep.c:341: 错误: ‘O_RDONLY’ 未声明 (在此函数内第一次使用)scripts/basic/fixdep.c:343: 警告: 隐式声明与内建函数 ‘fprintf’ 不兼容scripts/basi 阅读全文
posted @ 2013-04-11 21:20 MMLoveMeMM 阅读(8536) 评论(0) 推荐(0)
摘要: 安装了了redhat9.0,发现无法加载U盘,学习了别人的招式.枚举存储设备:fdisk -l一.Linux挂载U盘: 1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。 2、在mnt目录下先建立一个usb的目录(如:[root@localhost root]# mkdir /mnt/usb) 3、挂载U盘:mount -t vfat /dev/sda1 /mnt/usb 4一.Linux挂载U盘:1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。2、在mnt目录下先 阅读全文
posted @ 2013-04-06 16:15 MMLoveMeMM 阅读(483) 评论(0) 推荐(0)
摘要: VC2010在CMFCToolBar工具栏中加入组合框如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:To add a combo box button to a toolbar, follow these steps:1. Reserve a dummy resource ID for the button in the parent toolbar resource.2. Construct aCMFCToolBarComboBoxButton object.3. In the message handler that processes theAFX_ 阅读全文
posted @ 2013-04-02 00:40 MMLoveMeMM 阅读(777) 评论(3) 推荐(0)
摘要: 步骤:<1> : 在CMainFrame类中定义一个变量:保护类型.CProgressCtrl m_progress;<2> : 添加indicator指示器:ID_INDICATOR_PROG<3> : 添加WM_PAINT事件,添加代码如下void CMainFrame::OnPaint(){CPaintDC dc(this); // device context for painting// TODO: Add your message handler code here// Do not call CFrameWndEx::OnPaint() for 阅读全文
posted @ 2013-04-02 00:00 MMLoveMeMM 阅读(2094) 评论(0) 推荐(0)
摘要: 步骤:<1> : 现在CMainFrame类中定义:CMFCStatusBar m_wndStatusBar;//有MFC3字母,很多教材都使用CStatusBar<2> : 定义indicator指示器static UINT indicators[] ={ID_SEPARATOR,ID_SEPARATOR, // status line indicatorID_INDICATOR_STR,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,};红色的系统已经预定义了,添加一个自定义的举例在res资源中在string 阅读全文
posted @ 2013-04-01 14:25 MMLoveMeMM 阅读(880) 评论(0) 推荐(0)
摘要: 对状态栏的操作,发现源代码并不能在VS2010编译通过,原因是VS2010中部分类被更换,我就在状态栏上显示鼠标坐标进行显示。void CTestView::OnMouseMove(UINT nFlags, CPoint point){ CString str; CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd; CStatusBar* pStatus = &pFrame->m_wndStatusBar; if (pStatus) { str.Format("x = %d", point 阅读全文
posted @ 2013-04-01 13:14 MMLoveMeMM 阅读(598) 评论(0) 推荐(0)
摘要: 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和句柄获取和操作问题。本文中将针对各类句柄的获得、指针的获得以及MFC中常见应用进行阐述并举例。本节为VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法:GET App AfxGetInstanceHandle() AfxGetApp()GET Frame->View->Document SDI AfxGetMainWnd() -> GetActiveView() -> GetDocument() MDI AfxGet 阅读全文
posted @ 2013-04-01 13:00 MMLoveMeMM 阅读(391) 评论(0) 推荐(0)
上一页 1 ··· 41 42 43 44 45