|
Aescleal wrote: If during processing of a collection you can't handle them in a uniform way then it's really dodgy gathering them up in the same place.
you're thinking design-time. i'm thinking product-lifecycle-time.
if the design of v1.0 didn't anticipate everything v7.8 would be asked to do, you might end up with a collection of things which have deviated somewhat from the initial design. you might end up in a situation where objects of type A need a little extra attention because they've grown out of their training pants.
it happens.
|
|
|
|
|
I hate to break this to you but there's no specific "design time" in a product lifecycle. Everytime you modify the code you're making a design decision. What you're alluding to is that whatever collection of interfaces version 1 has has to be immutable for every version thereafer.
If objects of type A need a bit more attention change the interface it implements - it'll be a lot less pain in the long run. As soon as you move (or add) concrete class specific code out of the concrete class you make problems for yourself.
|
|
|
|
|
Aescleal wrote: I hate to break this to you but there's no specific "design time" in a product lifecycle
I would kindly disagree, design just comes in iterations. Non-stop redesign would be harmful for productivity IMHO (more details). I agree that coding is a design activity rather than a engineering activity (which requires small design decisions at every stepl), in practice redesign of classes/interfaces/flow should be done when needed.
/M
|
|
|
|
|
Aescleal wrote: I hate to break this to you but there's no specific "design time" in a product lifecycle.
|
|
|
|
|
I've got some 3rd party static libs in C++ using STL.
To use them in C projects without STL I wrapped them in some C++ lib providing extern "C" declaration which hides all STL and C++ stuff from the resulted header providing just void* pointers to data to be processed.
I linked them explicitly to that wrapper lib as in any C project all is needed just to link to that wrapper lib.
In VS2008 all C projects compiled normally.
After I converted those to VS2010 they started to ask those C++ libs with STL which are already present in the wrapper lib.
What is the problem VS2010 fails to see them already lnked to the wrapper?
Чесноков
|
|
|
|
|
Are you sure that MyCplusplusWithSTL.lib is in a directory that the linker is searching?
It's time for a new signature.
|
|
|
|
|
It does not need to.
There is 'MyWrapper.lib' which already linked explicitly with 'MyCplusplusWithSTL.lib' (the latter is added to additional dependencies in MyWrapper lib project)
Exe is a C project which needs only 'MyWrapper.lib' to be compiled. It worked in that mode with VS 2008.
However with VS2010 during C project compilation it asks for 'MyCplusplusWithSTL.lib'.
There is no need to include any lib explicitly to other lib project. In that case during exe compilation all libs should be added to additional dependencies.
In my case exe project is a C one without STL. That is why I used wrapper to remove 'MyCplusplusWithSTL.lib' dependency to be added to C project.
Чесноков
|
|
|
|
|
I know that quite a few things changed with VS2010 in terms of the build process. You need to check through all your project settings to make sure that no reference was transferred incorrectly.
It's time for a new signature.
|
|
|
|
|
C exe project links to only 'MyWrapper.lib' declared in additional dependencies. The same as in VS2008.
After I compile that exe project it asks for 'MyCplusplusWithSTL.lib' which was already linked before explicitly in 'MyWrapper.lib'
Чесноков
|
|
|
|
|
Maybe you should include MyCplusplusWithSTL.lib in your project and see what happens. I cannot guess why this is happening without seeing your entire project(s).
It's time for a new signature.
|
|
|
|
|
i am trying to use SHGetFolderPath and i get " error C3861: 'SHGetFolderPath': identifier not found" , i have included the #include "Shlobj.h", it seems that i need to "have shell32.dll" how can i do this? or any other ideas about how to solve this problem?
|
|
|
|
|
|
you can also you following code:
#pragma comment(lib,_T("Shell32.Lib"))
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
That looks like a compiler error rather than a link error so it's more likely to be something up with the include file. Have a check that:
- you've included it and there's nothing around it that might have stopped it being included (i.e. only including it in one path of a preprocessor controlled melange of death)
- that you haven't used a preprocessor directive to eliminate the function declaration - i.e. have you defined WIN32, __WINNT_<whatever> to the correct level to have the function declared?
Cheers,
Ash
|
|
|
|
|
i have read something in some forum-probably in codeguru- saying that #include "shfolder.h" helps us to get rid of this problem, i have checked my system32 folder and shell32.dll sits there so i have just added this line and everything started to work fine now my include section "includes":
[code]
#include "Shlwapi.h"
#include "Shlobj.h"
#include "shfolder.h"
[/code]
in order to get what i want. thank you all for your help!
best wishes,
dilara
|
|
|
|
|
dilara semerci wrote: i am trying to use SHGetFolderPath and i get " error C3861: 'SHGetFolderPath': identifier not found" , i have included the #include "Shlobj.h"...
But have you ensured that _WIN32_IE is greater than or equal to 0x0500 ?
"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
|
|
|
|
|
yes, i had and it works fine now
|
|
|
|
|
In a dialog base application i want to use a SDI application.
A SDI application display some data in its view window.
What i want, i want t display this view window data on dialog box.
SDI application is container type application which use coledocument andits related classes.
If it'snot possible then can i achive the same in activex control or dll
Please suggest.
|
|
|
|
|
You should use an SDI application with the view class derived from CFormView .
Now you will be able to use the dialog template to place controls on the dialog and this will appear as the view.
|
|
|
|
|
please give any sample link if available
|
|
|
|
|
You should be able to find plenty of examples using google.
|
|
|
|
|
Dear all,
I getting an exception error when file is missing or corrupted after it has been opened via CFile class. Below is the scenario.
Scenario:
1. Open file via CFile. (file is exist)
2. to simulate file corrupted (manually forced to delete it)
3. exception occurred.
CFile file;
file.Open("C:\log.dat",CFile::modeWrite|CFile::modeCreate, NULL);
file.Close();
I also tried using file.Abort(), but also getting an exception error.
Is there any proper handling if the file is missing or corrupted after opened and before it close?
Thanks in advance.
Regards,
Wee Chong
|
|
|
|
|
Use the CFile::shareExclusive mode as described in MSDN[^] to prevent other processes from accessing your file.
It's time for a new signature.
|
|
|
|
|
Hi Richard,
Thanks for your reply. Your solution can prevent the file access/deleted by other program. The problem I faced is the file corrupted or missing due to hard drive issue. The exception is occurred when trying to execute File.Close().
|
|
|
|
|
There is nothing you can do by programming if you have hard drive problems, other than maybe catching the exception and trying to save your environment. However, in cases like this it is likely that the entire system will fail.
It's time for a new signature.
|
|
|
|