|
do you mean that, you want all your controls in a big size as compared to the standard size?
|
|
|
|
|
What is the meaning of writing #pragma once on top of the header file?
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
It allows the header file to be compiled only once.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
George L. Jackson wrote: It allows the header file to be compiled only once.
It allows the header file to be included only once.
|
|
|
|
|
Actually, you are allowed to include it as many times you want, but the compiler ignores ALL BUT 1 of those times. So there are no duplicities.
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
|
|
|
|
|
|
Please refer here[^].
Regards,
Paresh.
|
|
|
|
|
Paresh, someone is going around scoring replies with ones without any reasons.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Hi George,
I couldn't get you. Could you please clear me, what you want to convey ?
Regards,
Paresh.
|
|
|
|
|
It is not important. I was just telling you someone is randomly rating our posts with the score of 1 even though the information we provided was useful.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Thanks for informing me .
Yes, you are correct. Though our information is relevant, someone is rating our post as 1.
Regards,
Paresh.
|
|
|
|
|
I still have problems to use GetAdaptersAddress and GetAdaptersInfo API to detect my laptop MAC address. I refer to MSDN, it says that if using Windows XP it is better to use GetAdaptersAddress rather than GetAdaptersInfo. I tried both but it seems that by using GetAdaptersInfo, i receive 2 error.
1) error LNK2001: unresolved external symbol _GetAdaptersInfo@8
2) C:\Documents and Settings\Administrator\Desktop\MAC Addr\Debug\MAC Addr.exe : fatal error LNK1120: 1 unresolved externals
For your information, Im using Windows XP professional and I have one NIC and another NIC for wireless. I create a *.C programming source code, not *.cpp
I already link the project to iphlpapi.lib and i add a header iphlpapi.h. It also require iphlpapi.dll but i didnt check that one since i dont know how. Is it because of the iphlpapi.dll? how to check this? If yes, how to complete this task (adding iphlpapi.dll). Also, is it because this code only can be used under MFC environment. What im trying to do is running it under a Win32 console without involving MFC since i dont know how to use MFC. What is actually MFC for? Hope anyone can help me. Its kinda urgent for my final year project. Thanks.
The code :-
#include <stdio.h>
#include <windows.h>
#include "iphlpapi.h"
#include "iptypes.h"
#include <nb30.h>
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
pAdapter = pAdapterInfo;
while (pAdapter) {
printf("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
printf("\tAdapter Desc: \t%s\n", pAdapter->Description);
printf("\tAdapter Addr: \t%ld\n", pAdapter->Address);
printf("\tIP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);
printf("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);
printf("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
printf("\t***\n");
if (pAdapter->DhcpEnabled) {
printf("\tDHCP Enabled: Yes\n");
printf("\t\tDHCP Server: \t%s\n", pAdapter->DhcpServer.IpAddress.String);
printf("\tLease Obtained: %ld\n", pAdapter->LeaseObtained);
}
else
printf("\tDHCP Enabled: No\n");
if (pAdapter->HaveWins) {
printf("\tHave Wins: Yes\n");
printf("\t\tPrimary Wins Server: \t%s\n", pAdapter->PrimaryWinsServer.IpAddress.String);
printf("\t\tSecondary Wins Server: \t%s\n", pAdapter->SecondaryWinsServer.IpAddress.String);
}
else
printf("\tHave Wins: No\n");
pAdapter = pAdapter->Next;
}
}
else {
printf("Call to GetAdaptersInfo failed.\n");
}
|
|
|
|
|
Please post your code using the "pre" tags - that mess is tough to read and your includes are not visible. As far as I can tell, the code looks okay but I didn't try to run it since I can't see your includes.
Muhamad Hazwan Halim wrote: I already link the project to iphlpapi.lib and i add a header iphlpapi.h. It also require iphlpapi.dll but i didnt check that one since i dont know how. Is it because of the iphlpapi.dll? how to check this? If yes, how to complete this task (adding iphlpapi.dll).
Double check your settings - the error you are reporting means that it is not finding the IP Helper library. You don't need to "check" the dll - it's part of XP, is used at runtime, and has no bearing on your problem of linking your exe.
Muhamad Hazwan Halim wrote: Also, is it because this code only can be used under MFC environment. What im trying to do is running it under a Win32 console without involving MFC since i dont know how to use MFC.
There is also no problem using this API in plain C code. It in a WIN32 function call and doesn't care about C++ or MFC.
Judy
|
|
|
|
|
Thanks for the reply. Really appreciate it. Unfortunately, i tried to re-link the lib file but the same problem has occured. Currently im using Visual C++ 2005 Express Edition. I had visit this one site and i follow the exact steps that he mentioned to set up VC++ 2005 Express Edition which integrates with the Microsoft Platform SDK for Windows Server 2003 R2. What i have done is i open the option menu and change the directories for executable file : C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin, for include files : C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include and lastly for lib file : C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib under the project and solution section. I also change the string that reads
AdditionalDependencies="kernel32.lib"
to
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib".
Is there any other steps that i forgot to include? In that article also it says that when the Win32 App Wizard is screened, make sure that Windows application is selected as the Application type and the ATL is not selected.
I tried this method but it still doesnt works and I also try starting by an empty console application, and i paste the code above but the same error still occured. But when i try to run the test.cpp, it works fine under the Windows Application as the Application type. Sorry im kinda slow since im still a student. Hope you guys can help me.
|
|
|
|
|
Muhamad Hazwan Halim wrote: AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib".
I don't see the iphlpapi.lib in this list. If not here, where is it being included? The error you are getting is quite explicit - you have not included the .lib file in your link process.
Judy
|
|
|
|
|
There is an article says that to link the project is by choosing tools->option. Under the project and solution section, the directory path for the executable, include and lib directory that contains the required include and lib (*.h, *.lib) must be identified and this directory must contain all the lib and header file that i want to use including iphlpapi.lib. I follow this instruction but i still could not solve my problem. Now, im trying to re-install everything back including my VC++ 2005 Express Edition and the R2 SDK. Do you think that i missed some of the steps here? What is actually the steps to link a project with a lib file?
I also add the iphlpapi.lib at the additional dependencies from the previous msg :
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib iphlpapi.lib".
But it still doesnt work. hehe...kinda frustrated here. but still lots of patients.
|
|
|
|
|
I'm not sure what else to tell you to try. As I said, the error means one thing only - can't find that library. I don't have express edition nor am I using the Platform SDK but there are only two things that need to be done
1) include the .lib in the Additional Dependencies (Configuration Properites => Linker => Input)
2) include the path to the lib in Additional Library Directories (Configuration Properties => Linker => General)
Make sure you are changing the properties for the build type (debug or release or unicode debug ...) you are using.
If that doesn't work, I'm stumped.
Judy
|
|
|
|
|
Hey, thanks..it really works..but still i have problems regarding the output that i retrieved by using the GetAdapatersInfo..Its ok..i will post the problem in another threat...Thanks thanks thanks..i owe you one...
p/s: programming is kinda exciting..
|
|
|
|
|
Muhamad Hazwan Halim wrote: I already link the project to iphlpapi.lib...
Then you've obviously done it incorrectly. Not linking with iphlpapi.lib is what produces linker error LNK2001.
Muhamad Hazwan Halim wrote: #include "iptypes.h"
This is not necessary.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hello everyone,
Sometimes a template class is defined to have only parameter and no type (e.g. class something) information. Like the below sample. My question is, why define template class in this way (e.g. I can implement in an alternative way to put the parameter into constructor)? If there is no type information (e.g. class something), there will be no benefits and reasons to use the template class. Any comments?
<br />
<br />
using namespace std;<br />
<br />
template <int size> class Foo {<br />
<br />
private:<br />
int limit;<br />
<br />
public:<br />
Foo()<br />
{<br />
limit = size;<br />
}<br />
<br />
};<br />
<br />
<br />
int main (int argc, char** argv)<br />
{<br />
Foo <100> f1;
<br />
Foo <200> f2;
<br />
return 0;<br />
}<br />
thanks in advance,
George
|
|
|
|
|
Nontyped template parameters give the user of your template class the opportunity to determine the size of "something".
template <size_t SIZE>
class Foo
{
public:
Foo()
{
for (size_t i = 0; i < SIZE; ++i)
vals[i] = int();
}
// ...
private:
int vals[SIZE];
};
In this example, the user can determine the size of the vals array. Otherwise, you would have to hardcode the size or dynamically create it to that size if passed via a construtor.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Thanks George L. Jackson,
Any benefits of using template class parameter compared with using constructor?
regards,
George
|
|
|
|
|
Run-time vs. compile-time! C++ gives you choices on how you want to program. Nontype template parameters can be used as compile-time expressions. My example had a constant-expression created at compile time.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Thanks George L. Jackson,
In the past days, I read some articles about compile time and run time expression. I think using compiler to calculate the value of some constant is just come tricks, and I do not see any practical usage. Please feel free to comment and correct me if you are not agree.
Example, factorial function
http://en.wikipedia.org/wiki/Template_metaprogramming[^]
regards,
George
|
|
|
|
|
Template metaprogramming is interesting. But like everything else, it is not useful to you if you can not visualize it as so. I have found programming concepts not so useful at first glance to be very useful over time. Nevertheless, whether you use a pair of pliers or a wrench to tighten a nut, all that matters in the end, the work was completed and the customer is happy.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|