|
If you already have it in a txt, you can open and read it with files management as other stuff.
About the use... maybe this[^] can help you.Regards.
--------
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
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I thought about that, and while I can get it down to the correct line, I couldn't get it to retrieve only the gateway. Had some issues using the find command. Its safe to say I'm pretty amateur.
|
|
|
|
|
gamefreak2291 wrote: I'm trying to figure out how to locate and use the IP Address/Default Gateway in a C++ program. This is so that a simple program can be universal on any network.
Not sure why you need this information for a simple networking program. Have a look at the API Helper API[^]. There can be multiple network interfaces in your system, you can use GetAdaptersInfo()[^] to get IP address/netmask/etc for all of them.
Hope this helps!
/M
|
|
|
|
|
See if this helps."One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
I'm looking to create a pair of buttons with the look of a Windows spin control. That is, two small buttons with an up arrowhead on one and a down arrowhead on the other. So far I'm unable to show the arrowhead characters as the button labels.
I'm using Visual Studio 2008 v9.0, C++, MFC. The project is compiled with the D "_MBCS" option. Switching to Unicode would require many hundreds of changes to the code base.
How can I use that character in my button label? Thanks in advance!
Dave.
|
|
|
|
|
|
Could do, but I thought it might be simpler to use an existing character. Problem is, these characters are proving difficult to access. I will use a bitmap if I have to.
Dave.
|
|
|
|
|
There is something for that in the Windows API somewhere. I've used it when I had to owner-draw cells in a (lousy) grid control to show that they would be dropdown combo boxes when editing the cell. Unfortunately, I can't seem to find the reference and am not around that code right now. Please do not read this signature.
|
|
|
|
|
Why don't you change the button font (for instance, you may use Symbols characters 173, 175 )?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Not sure how that's going to help...?
|
|
|
|
|
Did you use CharMap to see what characters 173 and 175 in the Symbol font set were?"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
They're not what I want. The characters I want are U+25B2 and U+25BA. They show up in charmap but their codes are not accepted by the compiler. Again the D "_MBCS" flag is set.
|
|
|
|
|
Then you have to use the "Wingdings 3" font, characters 112, 113 .If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
OK, now I get it. I wasn't sure how changing the font could help. Yes that works. Now I have to hope the users all have Wingdings 3! But that's a problem for another day.
Thanks to all for your help!
Dave.
|
|
|
|
|
I've used such font to show the arrows on the button.
Wasn't that what you were asking for?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I See your Drift, but How do you change two chars in a font ( to say Marlot chars or Bitmaps)leaving all the others the same.
RegardsBram van Kampen
|
|
|
|
|
Dave Colter wrote: How can I use that character in my button label?
See here."One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
This has been bugging me. What I was thinking of was DrawFrameControl(). Check it out to see if it helps you any. The situation I used it for didn't care about graphic prettiness or themes. I seem to recall that there was some issue in using it where that was important.
CDC::DrawFrameControl[^]
and
DrawFrameControl[^]
The link from the first page to the second is broken on the MS website, but you need info from the second to use this.Please do not read this signature.
|
|
|
|
|
Hi,
I have various builds of a DLL, depending on the target platform and I would like to be able to modify the 'Comments' item of the VERSIONINFO structure depending on the build. This would allow me to see which version of the DLL the end user has on their system. (I have had occasions where they have unknowingly copied the wrong DLL for their platform). The DLL name is deliberately identical so that the parent application does not need modification for different platforms (thats the whole idea of the DLL!).
Is there an easy way to have conditional values in the VERSIONINFO?
I have considered using Resource Hacker in the post-build step but its not clear how this can be used to modify the version info with commad line options.
Thanks
Tony
|
|
|
|
|
You can use #if and #endif in your resource script to select different entries. Then just #define the appropriate variable for each build.txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
Hey, thanks for the reply!
If I remember correctly, I tried this but even with a batch full build, the compiler appeared only to compile the resources once so all of the builds had the same comment.
I can't be 100% sure that this is what happened but I will check.
Tony
|
|
|
|
|
Yes I missed that, you may need to add some extra dependencies to the project, or a pre-build statement of some sort. txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
Each build will compile the .rc to a build specific .res.
Within the IDE go to Resource View.
Open the .rc file and add/select a Version.
Right-click on the Version and select Properties.
Edit the Condition field....cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
The question is how function-level statics are constructed when the function is called on multiple threads?
Problem Description: Deadlock occurs and my application doesn't get terminated. During initialization of local static variable it tries to acquire MSVCR80!_lock and never gets hold on the lock.
Below is the calls stack and you will see that it will never get hold on the lock _mlock
(_EXIT_LOCK1); //C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\crt0dat.c
ntdll!RtlpWaitForCriticalSection+0x132
ntdll!RtlEnterCriticalSection+0x46
MSVCR80!_lock+0x2e MyDLL!_onexit+0x36 [f:\sp\vctools\crt_bld\self_x86\crt\src\atonexit.c @ 103] MyDLL!atexit+0x9 [f:\sp\vctools\crt_bld\self_x86\crt\src\atonexit.c @ 127] MyDLL!__DllMainCRTStartup+0x7a [f:\sp\vctools\crt_bld\self_x86\crt\src\crtdll.c @ 498] MyDLL!_DllMainCRTStartup+0x1d [f:\sp\vctools\crt_bld\self_x86\crt\src\crtdll.c @ 462] ntdll!LdrpCallInitRoutine+0x14
// Code snippet below
void main()
{
atexit(MyCallBack);
exit(0);
}
void MyCallBack()
{
// Waitingforsingleobject() // Waits until all threads are terminated
}
The EXE call DllMain with DLL_THREAD_DETACH flag and we have an explicit handling as shown below
BOOL APIENTRY DllMain( HANDLE, DWORD dwReason, LPVOID )
{
if(dwReason == DLL_THREAD_DETACH)
{
F1();
F2();
}
}
F1()
{
const static CComBSTR bstrMethod = __ FUNCTION __ ;
}
F2()
{
const static CComBSTR bstrMethod = __ FUNCTION __ ;
}
Is it thread safe to have local static initialization within a function. Also I noticed if static variable is once initialized before the exit() of main application I don't see any problem. Can any one please explain what might be issue?
Note: But when I make static variable as non static the deadlock doesn't occur and problem is solved.
Also let me know any alternate solution which might help in this situation Eagerly waiting for reply.irfan
|
|
|
|
|
In general a function that uses a local static variable is generally NOT reentrant. A function that is not reentrant is not thread-safe. It isn't merely deadlock, it can also produce bad results.
There is a different instance of an automatic variable for each invocation of a function, but all invocations share one and the same local static. Access to a shared resource from threads needs concurrency control.
In your case you are talking about a const variable. In this case, it shouldn't be a problem except during initialization. Further, the run time library seems to be putting in some concurrency control for what you are doing. This concurrency control is for a different issue and would probably not be adequate for your situation. It did get me to stop and take a broader look at your situation.
You are trying this in DLLMain. You really need to carefully read the documentaiion on DLLMain[^].
In particular:
Warning There are serious limits on what you can do in a DLL entry point.
and
Unfortunately, there is not a comprehensive list of safe functions in Kernel32.dll.
and
Calling functions that require DLLs other than Kernel32.dll may result in problems that are difficult to diagnose.
and
DLL notifications are serialized
The bottom line seems to be that you are getting too fancy for DllMain. I'd suggest thinking about your design and trying to keep DllMain as bare bones and simple as possible.Please do not read this signature.
|
|
|
|