|
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
|
|
|
|
|
Thanks George L. Jackson,
What do you think is the most useful function of template class with only parameter information without type information in practices? Could you share some experiences/samples please?
regards,
George
|
|
|
|
|
|
Thanks George L. Jackson,
Good sample!
regards,
George
|
|
|
|
|
I have some old MFC applications compiled with VC++ 6.0.
I plan on buying VS 2005 standard edition soon.
The question is
1.if I recompile it using VS 2005,Will the newly create executable file use MFC8 or it still linking with MFC42.dll ?
2.Is MFC8 dll come with every Windows XP SP2 or I have to include it in application folder(Will it conflict with the system provided one) ?
Sorry for my bad english.
Thank in advance
|
|
|
|
|
xanagan666 wrote: I plan on buying VS 2005 standard edition soon
AFAIK VS 2008 will be available by the end of the month...
don't know about your questions though, I'm a .NET guy.
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- use PRE tags to preserve formatting when showing multi-line code snippets
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
In addition to what the nice ".NET guy" said:
xanagan666 wrote: 1.if I recompile it using VS 2005,Will the newly create executable file use MFC8 or it still linking with MFC42.dll ?
It will require the new MFC DLL. However, you will need to check out all the breaking changes since that version. Most likely you won't have a clean recompile.
xanagan666 wrote: 2.Is MFC8 dll come with every Windows XP SP2 or I have to include it in application folder(Will it conflict with the system provided one) ?
From my experience, there is no gurantee that that DLL will be installed on a Windows XP SP2 system. However, I have not really check if this DLL is installed when the OS or service pack is installed.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
|
Thank everyone for your answer.
|
|
|
|
|
Hi all!
hope somebody can help.
I am using named pipe for communication. however i am encountering an error when calling CreateFile. GetLastError returns "The system cannot find the file specified."
it was working fine but after sometime CreateFile fails. I am not sure what is wrong. the named pipe server is still running.
also will there be a problem if CreateFile is called concurrently on the same named pipe server?
thanks for any help!
old
|
|
|
|
|
It could be the name of the pipe that is wrong that is why it can't find it. Or maybe the named pipe still has not been created when the CreateFile was executed. Posting the code snippet could help for us to know what the problem is.
|
|
|
|
|
Hi Llasus! thanks for the quick reply.
the named pipe is correct and it was working fine. i have been running it for around 2hours and after that it failed on CreateFile.
the code is similar to the sample in msdn for multithreaded namedpipe. though i have limited the pipe server instances to 25. after each successful connection it will read the data, send a reply by WriteFile then disconnect the named pipe.
for the client it will just call CreateFile then write the data and wait for the reply and close the handle.
hope to hear from u again.
old
|
|
|
|
|
So only one named pipe inside the server exists and at maximum 25 clients can access the server right?
ginjikun wrote: after each successful connection it will read the data, send a reply by WriteFile then disconnect the named pipe.
Or will the server create a named pipe for each client?
|
|
|
|
|
Hi again!
Yes, there is only 1 pipe server creating 25 instances to enable at least 25 clients to connect.
something like this for the server
for (;;)
{
CreateNamedPipe(
...,
25, // instances
...
);
// wait for clients to connect
ConnectNamedPipe(...);
...
ReadFile(...);
WriteFile(...);
DisconnectNamedPipe(...);
CloseHandle(...);
}
the client...
CreateFile(...);
WriteFile(...);
ReadFile(...);
CloseHandle(...);
again, it was working fine for a few hours then suddenly i get the error "The system cannot find the file specified." i am not sure what happened. the namedpipe server is still running.
thanks again!
old
|
|
|
|