|
Have you tried searching google?
http://www.google.com/search?hl=en&q=c+source+code+fft&btnG=Search
Or even a website where there are many articles using code?
http://www.codeproject.com/info/search.asp then type in fft. Lot's of articles there...
Iain.
|
|
|
|
|
Thanks for replying.
I am really very thankful to you all.
|
|
|
|
|
raavn wrote: Can please anyone give me the code in vc++ to calculate FFT?
Nope.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
hi all,
I have a struct define as follows, defines on the 32bit machine.
<br />
struct pac_cont <br />
{<br />
unsigned int des_list; <br />
unsigned int mem_ID; <br />
unsigned char dm_con; <br />
unsigned char ser_ID; <br />
unsigned short act; <br />
};<br />
This is one of very important part of my application, and I want to keep this structure as it is on any windows system without any issue. So I think it is better to use Windows Data Types. I defined it as follows.
<br />
struct pac_cont<br />
{<br />
DWORD32 des_list; <br />
DWORD32 mem_ID; <br />
CHAR dm_cont; <br />
CHAR ser_ID; <br />
SHORT act; <br />
};<br />
Is it correct.
I appreciate your help all the time...
Eranga
|
|
|
|
|
Surely this is going to depend on how your headers typedef them, specifically winnt.h and basetsd.h, and how your compiler interprets the inbuilt types? Once your code is compiled the windows system on which your code is used wont make any difference. Even if you change the structure as you propose and use it with a 32bit compiler and then later port your code to a 64 bit compiler, you will still have to check that the typedefs havent changed and that the inbuilt types are the same as before, also you will have to check that default structure packing hasnt changed.
Ohh and current headers "typedef short SHORT;" so your act member has changed type already.
|
|
|
|
|
Roger Broomfield wrote: Ohh and current headers "typedef short SHORT;" so your act member has changed type already.
I'm not clear what you say.
I appreciate your help all the time...
Eranga
|
|
|
|
|
unsigned short != short
so...
unsigned short != SHORT
so...
you have already change the type of the datas using SHORT
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
That mean, I can't change unsigned short act; as SHORT act;
Ok, I think I have to read more about this.
I appreciate your help all the time...
Eranga
|
|
|
|
|
You can, but you will already have a change of the typ. If you DO need a unsigned short... then you can not use SHORT. At least that is what I guess after reading Roger's answer
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
Hmmm,
Anyhow I have to use unsigned char, to keep the struct variables sizes. Otherwise the application gives wrong output.
I appreciate your help all the time...
Eranga
|
|
|
|
|
then... why dont you make your own typedef? I think unsigned short is standard and portable to all platforms. About the other types... read the answers below, they speak with more knowledge than me
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
There is no such thing as Windows Data Types.
There are only the c++ data types (when working in c++ ) which are
char, short, int, long, long long. All of them can be signed, unsigned or undefined (which means signed).
char = 1 byte ( 8 bit)
short = 2 byte (16 bit)
long = 4 byte (32 bit)
long long = 8 byte (64 bit)
int = natural size of adressing on 32 bit platforms this will be 4 byte. on other platforms this could be smaller or larger. Alsoo this size can change from compiler to compiler. Apperantly MS has defined that a int will always be 32 bit.
From basetsd.h
typedef unsigned int ULONG32, *PULONG32;
typedef unsigned int DWORD32, *PDWORD32;
When using struct especialy use known size type, which means never use int! That way this piece of code can work cross-platform, cross-compiler.
codito ergo sum
|
|
|
|
|
Yep, thats what I really want. I want to use this code on any Windows platform without any use, but the develop based on 32 bit system.
BadKarma wrote: There is no such thing as Windows Data Types.
Say I have two variables,
<br />
int32 i = 10;<br />
<br />
DWORD32 j = 12;<br />
Can I use both i and j on Windows?
My answer is "yes"
Can I use both i and j on Linux?
My answer is "no". Because DWORD32 is a Windows Data Type
Is that correct.
I appreciate your help all the time...
Eranga
|
|
|
|
|
Eranga Thennakoon wrote: My answer is "no". Because DWORD32 is a Windows Data Type
Is that correct.
No.
I Repeat :
BadKarma wrote: There is no such thing as Windows Data Types.
DWORD32 is typedefed as an unsigned 32bit integer. This means one thing: the compiler treats the variables the same. You can simply make your own aliasses to known types, like this:
typedef unsigned long MYLONG;
DWORD32 is defined in basetds.h as
typedef unsigned int DWORD32; this means you can either use:
struct A
{
unsigned int data;
}; or
struct A
{
DWORD32 data;
}; there will be no difference for the compiler.
This means that you should be able to use this struct also on a unix compiler. However MS has set the size of theire int to be fixed 4 bytes (IMHO a mistake). So this could break your cross-platform, cross-compiler compatibility. Use a long instead of an int. It is always better to use the full names of the datatypes then the Typedefed ones.
codito ergo sum
|
|
|
|
|
DWORD32 is a datatype typedefed (or preprocessor-defined) in Windows.
In linux, you may or may not have those types defined.
So, the best thing you could do is add a header to your code where you define the types you need for every platform you support.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
You're still missing a pretty obvoious point.
int 32 = 10;
DWORD32 j = 32;
Look at the definition for DWORD32, and you'll end up with the keyword unsigned.
Try
int32 i = -10;
DWORD32 j = -32;
As for the structure sizes, BadKarma already told you the definition of them.
The only thing that hasn't been fully explained is packing sizes.
Compilers usually space out variables in a structure to make it easier to address them. So the individual variables of your structure may have the same size, but you'll have gaps in between them.
Do a search for
#pragma pack (push, 1)
and
#pragma pack (pop)
for more detail.
Iain.
in a program and see the results.
|
|
|
|
|
Oops, sorry about that, I got the point. Thank you all.
I appreciate your help all the time...
Eranga
|
|
|
|
|
Hi,
While opening one of the VC++ projects containing Microsoft chart control i am getting an error stating that i do not have a design time license for Activex. I have Microsoft Visual C++ 6.0
Do we need a seperate license for using the Activex in VC++. Or do we have a patch for the same. How can i get the same?
Anshu
|
|
|
|
|
Have you the latest service pack installed?
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
Can i know what is the latest service pack for VC++ 6.0 and from where can i get the same??
|
|
|
|
|
I have the SP 6, I am not 100% sure if it is the last or not. And you can find them in Microsoft's web (but can not tell you where exactly, in my case was provided by my firm, so I didn't need to look for it)
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
|
|
|
|
|
Hi
thanks for ur reply. I downloaded and installed SP6 for Visual studio. However i am still facing the same problem.
Regards,
Anshu
|
|
|
|
|
I had a similar problem trying to use the Microsoft Grid Control. It turns out that in the list of controls, there were two that were available - both appeared to be MS Grid Controls, but one was apparently an old version that was probably installed by some other software at some point.
Of course, I chose the wrong one and got the error message you indicate. After talking to Microsoft, I went into my project and selected the other grid control and all was OK.
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
How to change the list of controls.... i mean i dn really know how to change the list of controls
|
|
|
|
|
hi i am using c programming.
i am trying to make a program which compare the user entered date of birth and return how old they are are.
i have already found the nessaccary functions for comparison of datetime thru <time.h>
e.g: time_t t;, difftime()
so currently i am troubles by how i am supposs to input the values the user entered which may be string into the time_t type variable?.
could anyone pls help me.
|
|
|
|