|
I'm trying to create a static lib with a simple class
that has a single method that returns a std::string. I
can build the static library just fine but when I link
my application against the static library I get an error
about multiple defines of std::basic_string.
Has anyone done this successfully?
Thanks,
Brad
-------------------------------------------------------
My header file:#if !defined( __CTest_h__ )
#define __CTest_h__
class CTest {
public:
CTest();
~CTest();
std::string Try( void );
};
#endif
------------------------------------------------------
The corresponding .cpp file:
#include "StdAfx.h"
#include "CTest.h"
CTest::CTest(
void
) {
}
CTest::~CTest(
void
) {
}
std::string CTest::Try(
void
) {
std::string strResult = "testing";
return strResult;
}
--------------------------------------------------------
<string> is #included in StdAfx.h
|
|
|
|
|
For one, you aren't directly including the <string> header file as far as I can tell...that might have something to do with it. Of course, it might just be easier to use CString instead of string (it is what MFC uses anyway and it basically offers the same functionality).
==================
The original message was:
I'm trying to create a static lib with a simple class that has a single method that returns a std::string. I can build the static library just fine but when I link my application against the static library I get an error about multiple defines of std::basic_string.
Has anyone done this successfully?
Thanks, Brad -------------------------------------------------------
My header file:#if !defined( __CTest_h__ ) #define __CTest_h__
class CTest { public: CTest(); ~CTest();
std::string Try( void ); };
#endif
------------------------------------------------------ The corresponding .cpp file:
#include "StdAfx.h" #include "CTest.h"
CTest::CTest( void ) { }
CTest::~CTest( void ) { }
std::string CTest::Try( void ) { std::string strResult = "testing";
return strResult; }
--------------------------------------------------------
<string> is #included in StdAfx.h
|
|
|
|
|
That should read you aren't directly including the < string > header file
==================
The original message was:
For one, you aren't directly including the <string> header file as far as I can tell...that might have something to do with it. Of course, it might just be easier to use CString instead of string (it is what MFC uses anyway and it basically offers the same functionality).
================== The original message was: I'm trying to create a static lib with a simple class that has a single method that returns a std::string. I can build the static library just fine but when I link my application against the static library I get an error about multiple defines of std::basic_string.
Has anyone done this successfully?
Thanks, Brad -------------------------------------------------------
My header file:#if !defined( __CTest_h__ ) #define __CTest_h__
class CTest { public: CTest(); ~CTest();
std::string Try( void ); };
#endif
------------------------------------------------------ The corresponding .cpp file:
#include "StdAfx.h" #include "CTest.h"
CTest::CTest( void ) { }
CTest::~CTest( void ) { }
std::string CTest::Try( void ) { std::string strResult = "testing";
return strResult; }
--------------------------------------------------------
<string> is #included in StdAfx.h
|
|
|
|
|
Sorry the '<' & '>' in my orriginal post were
treated as html; < string > is #included in the
stdafx.h.
1. I do not use 'using namespace std' because that
I want to use the namespace and not just ignore
it, therefor I scope all of the stl strings with
std::. This works very well.
2. I am not using CString because I don't want to
use MFC for this and because I am using string in
this example when I also want to use stl vector
and map classes.
3. No one has addressed my original problem which is
multiple defines. The code for the static library
builds just fine. I am getting the multiple defines
in the application that also uses stl and links with
my static library.
Brad
==================
The original message was:
For one, you aren't directly including the <string> header file as far as I can tell...that might have something to do with it. Of course, it might just be easier to use CString instead of string (it is what MFC uses anyway and it basically offers the same functionality).
================== The original message was: I'm trying to create a static lib with a simple class that has a single method that returns a std::string. I can build the static library just fine but when I link my application against the static library I get an error about multiple defines of std::basic_string.
Has anyone done this successfully?
Thanks, Brad -------------------------------------------------------
My header file:#if !defined( __CTest_h__ ) #define __CTest_h__
class CTest { public: CTest(); ~CTest();
std::string Try( void ); };
#endif
------------------------------------------------------ The corresponding .cpp file:
#include "StdAfx.h" #include "CTest.h"
CTest::CTest( void ) { }
CTest::~CTest( void ) { }
std::string CTest::Try( void ) { std::string strResult = "testing";
return strResult; }
--------------------------------------------------------
<string> is #included in StdAfx.h
|
|
|
|
|
In your stdafx.h put the following
#include <string>
using namespaces std;
the second line allows you to just make your declarations like so:
string strmystring;
string = "This is a string";
==================
The original message was:
I'm trying to create a static lib with a simple class that has a single method that returns a std::string. I can build the static library just fine but when I link my application against the static library I get an error about multiple defines of std::basic_string.
Has anyone done this successfully?
Thanks, Brad -------------------------------------------------------
My header file:#if !defined( __CTest_h__ ) #define __CTest_h__
class CTest { public: CTest(); ~CTest();
std::string Try( void ); };
#endif
------------------------------------------------------ The corresponding .cpp file:
#include "StdAfx.h" #include "CTest.h"
CTest::CTest( void ) { }
CTest::~CTest( void ) { }
std::string CTest::Try( void ) { std::string strResult = "testing";
return strResult; }
--------------------------------------------------------
<string> is #included in StdAfx.h
|
|
|
|
|
I write a lot of "smallish" custom C++ apps and am always interested in understanding the actual amount of time spent on each project. (Perhaps similar to the File-Properties information provided in Microsoft Word.)
Is there a DevStudio Add-In that tracks time in a project/workspace? If not, I'd be interested in other (preferably automated) approaches.
|
|
|
|
|
I don't know if there is an add-in, but it wouldn't be that hard to write yourself a quick little program that tracks the time (select the project from a dropdown list or something and then hit the start button to start tracking, hit the stop button when you go on break etc.). It might take 15 minutes or so to write.
==================
The original message was:
I write a lot of "smallish" custom C++ apps and am always interested in understanding the actual amount of time spent on each project. (Perhaps similar to the File-Properties information provided in Microsoft Word.)
Is there a DevStudio Add-In that tracks time in a project/workspace? If not, I'd be interested in other (preferably automated) approaches.
|
|
|
|
|
I think he means something different.
No everybody will remember to press the buttons.
It should work automatically - when your open a project it should start, when you close - finish. Also take care abourt right counting time while your another application is active and VC++ is sleeping
==================
The original message was:
I don't know if there is an add-in, but it wouldn't be that hard to write yourself a quick little program that tracks the time (select the project from a dropdown list or something and then hit the start button to start tracking, hit the stop button when you go on break etc.). It might take 15 minutes or so to write.
================== The original message was: I write a lot of "smallish" custom C++ apps and am always interested in understanding the actual amount of time spent on each project. (Perhaps similar to the File-Properties information provided in Microsoft Word.)
Is there a DevStudio Add-In that tracks time in a project/workspace? If not, I'd be interested in other (preferably automated) approaches.
|
|
|
|
|
That wouldn't be much harder. Just enumerate the windows to search for a title contianing "Microsoft Visual C++" on one of them, and then store the window's HWND value and use a thread to constantly check the status of the window and update the time (maybe every minute or so, so that it doesn't take up too much proccessor time...or every 5 seconds or so...it all depends on how accurate you really want to be). The title comes in something like the following format: "PROJECT NAME - Microsoft Visual C++ [CURRENT FILE INFORMATION]". When the PROJECT NAME part changes, or the window is closed, or the window and its children are not active, the clock stops counting for the listed project. On program exit and entrance, it would load past project values and save new project information. A simple combo-box interface could allow you to view the status of each project, reset timers, etc.
==================
The original message was:
I think he means something different. No everybody will remember to press the buttons. It should work automatically - when your open a project it should start, when you close - finish. Also take care abourt right counting time while your another application is active and VC++ is sleeping
================== The original message was: I don't know if there is an add-in, but it wouldn't be that hard to write yourself a quick little program that tracks the time (select the project from a dropdown list or something and then hit the start button to start tracking, hit the stop button when you go on break etc.). It might take 15 minutes or so to write.
================== The original message was: I write a lot of "smallish" custom C++ apps and am always interested in understanding the actual amount of time spent on each project. (Perhaps similar to the File-Properties information provided in Microsoft Word.)
Is there a DevStudio Add-In that tracks time in a project/workspace? If not, I'd be interested in other (preferably automated) approaches.
|
|
|
|
|
Sure is not so difficult.
Rather it can be done by way automation - throw Application object.
==================
The original message was:
That wouldn't be much harder. Just enumerate the windows to search for a title contianing "Microsoft Visual C++" on one of them, and then store the window's HWND value and use a thread to constantly check the status of the window and update the time (maybe every minute or so, so that it doesn't take up too much proccessor time...or every 5 seconds or so...it all depends on how accurate you really want to be). The title comes in something like the following format: "PROJECT NAME - Microsoft Visual C++ [CURRENT FILE INFORMATION]". When the PROJECT NAME part changes, or the window is closed, or the window and its children are not active, the clock stops counting for the listed project. On program exit and entrance, it would load past project values and save new project information. A simple combo-box interface could allow you to view the status of each project, reset timers, etc.
================== The original message was: I think he means something different. No everybody will remember to press the buttons. It should work automatically - when your open a project it should start, when you close - finish. Also take care abourt right counting time while your another application is active and VC++ is sleeping
================== The original message was: I don't know if there is an add-in, but it wouldn't be that hard to write yourself a quick little program that tracks the time (select the project from a dropdown list or something and then hit the start button to start tracking, hit the stop button when you go on break etc.). It might take 15 minutes or so to write.
================== The original message was: I write a lot of "smallish" custom C++ apps and am always interested in understanding the actual amount of time spent on each project. (Perhaps similar to the File-Properties information provided in Microsoft Word.)
Is there a DevStudio Add-In that tracks time in a project/workspace? If not, I'd be interested in other (preferably automated) approaches.
|
|
|
|
|
Hello,
just a beginner question:
I need to write a small application which does the following:
1. Loads a colored *.tif file
2. Removes the red color completely from the image
3. Saves the image as a black and white *.tif file
How do I go on about this?
TIA
Best wishes,
Matthias Steinbart
|
|
|
|
|
Oh oh...
You can try to use the Image Packet from Data-tech, www.data-tech.com, or you can try to search code that loads Tiff ( oops !).
Good luck !
Braulio
|
|
|
|
|
Try
http://www.paintlib.de/paintlib/
There you will find a free library that appears to be fairly complete. To quote from the site:
"paintlib is a portable C++ class library for image manipulation. Images can be loaded from PNG, TGA, TIFF, JPEG, BMP, PCX and PICT files and saved in TIFF and JPEG formats. Image manipulation can be done either through filters implemented in filter classes or by directly accessing the bitmap bits. Full C++ source is provided."
Good luck.
Al
--
==================
The original message was:
Hello,
just a beginner question:
I need to write a small application which does the following:
1. Loads a colored *.tif file 2. Removes the red color completely from the image 3. Saves the image as a black and white *.tif file
How do I go on about this?
TIA
Best wishes,
Matthias Steinbart
|
|
|
|
|
How can i switch my second view with another (in a spliter view).
|
|
|
|
|
You can use the SplitterEx class included instead of the standard one, and in your FrameWnd just use
m_wndSplitter.ReplaceView(0, 1, RUNTIME_CLASS(CNewView)).
|
|
|
|
|
Where I can find the SplitterEx class?
==================
The original message was:
You can use the SplitterEx class included instead of the standard one, and in your FrameWnd just use m_wndSplitter.ReplaceView(0, 1, RUNTIME_CLASS(CNewView)).
|
|
|
|
|
The CSplitterEx class was included in my first reply, in an attachment you should be able to get from the forum. Regards, Pascal
==================
The original message was:
Where I can find the SplitterEx class?
================== The original message was: You can use the SplitterEx class included instead of the standard one, and in your FrameWnd just use m_wndSplitter.ReplaceView(0, 1, RUNTIME_CLASS(CNewView)).
|
|
|
|
|
Hi,
I have a subclass of CRichEditCtrl, and for some reason it does not receive the WM_LBUTTONUP message. I've verified this with Spy++, as well as the following code:
void CCommandLineEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
TRACE("OnLButtonDown()\n");
CRichEditCtrl::OnLButtonDown(nFlags, point);
}
void CCommandLineEdit::OnLButtonUp(UINT nFlags, CPoint point)
{
TRACE("OnLButtonUp()\n");
CRichEditCtrl::OnLButtonUp(nFlags, point);
}
Commenting out CRichEditCtrl::OnLButtonDown(...) does allow the OnLButtonUp function to be called, but this also prevents the user from moving the caret by clicking the mouse anywhere (as well as making any type of selection with the mouse).
I do have ENM_MOUSEEVENTS specified in my SetEventMask() call. Also, the problem isn't unique to this individual control.
Has anybody seen this problem before or know of a way around it? (Preferably other than setting a timer on lbuttondown and polling for the button to be released).
Thanks for any help!
Jeremy
|
|
|
|
|
I have a dialog based app that has a list box. The listbox items are owner drawn. For now
they are buttons instead of strings. When I start the app, and click the "Go" button, I want
a new button to be added to the list box. The first one works fine, but if I click Go again,
nothing shows up. If I keep clicking, scroll bars will appear, so I think the buttons are
being added, they just aren't painting correctly. If I use the scroll bars to scroll up and
down a few times, the first button (the only one that shows up) changes position, and then
it also disappears. Any ideas? I can send some code, if that will help.
Thanks,
Stephanie
|
|
|
|
|
Hi,
I use dialogs in an MDI application with list controls to display information. I also implement context menus on the items in the list with TrackPopupMenu(...).
The dialog correctly receives the commands from the menu. But it does not receive UPDATE_UI messages during menu operation; in fact I've found out these UPDATE_UI messages for the menu options do come to the dialog code AFTER an option of the menu has been selected and the menu is closed.
Does anybody know why and how to change that?
|
|
|
|
|
Hello,
a friend would like to use ViM as default editor for the VisualC++ IDE ( i don't know why .. These UNIX guys....).
Is there a way to do that ?
Stephane
|
|
|
|
|
Hi,
I am writing a ticker. I am using a memDC to draw everything to a bitmap, then blit it to the real DC. My question is:
After drawing everything to the memDC then blitting to the real DC. I want to save the memDC as a bitmap.
I do the following now:
...
// Draw everything to the memDC, then blit it to the real DC.
memDC.CreateCompatibleDC(pDC);
memBmp.CreateCompatibleBitmap(pDC, m_rectClient.Width(),
m_rectClient.Height());
pOldBmp = memDC.SelectObject(&memBmp);
...
But when I try to look at the memBmp it has nothing in it. How do I save the memoryBitmap so I can use it the next time I scroll?????
Thanks in Advance
John Mancini
|
|
|
|
|
Does anyone know what a worker pointer is? A colleague of mine who is learning C/C++ was asked to demonsatrate a piece of code using worker pointers, but what is that?
|
|
|
|
|
I've heard of smart pointer, NULL pointers, and dangling pointers. But worker pointers? Nope. My guess is that they're just local pointers which are used when traversing an array or a linked list; sort of like "iterators".
Anyone else have an idea?
Alvaro
|
|
|
|
|
Here is a VB test app. It is not very complex or clever, but it works.
Dim WithEvents mcs As MCSClient
mcs.Initialize "MyString"
where MCSClient is a com object added to the VB environment by adding a reference. Not a component, but a reference.
I would like an equivalent VC app to this VB app. So I wrote some code like this.
I use the Wizard to generate a wrapper class over the same dll the VB referenced and in my header I define a variable of the wrapper type as such.
IMCSClient m_IMCSClient;
Then in my code I successfully create the dispatch like so.
if(((*(COleDispatchDriver*)(&m_IMCSClient))).m_lpDispatch==NULL){
if (!(m_IMCSClient.CreateDispatch("4E51E425-021E-11D2-B759-0020AFF84106", &oe))) {
}
}
I can also use the progid in creating the dispatch, either way works.
Here comes the problem, I want to perform the Initialze method. (Just like VB did.)
m_IMCSClient.Initialize("MyString);
When, this code excutes it will throw the following exception.
DISP_E_MEMBERNOTFOUND
I am not sure what it means.
Is anyone familar enough with VB to know what WithEvents means?
Can anyone suggest a different course of action.
|
|
|
|