|
Now, i get this error:
Unhandled exception at 0x00530a33 in MyPrg.exe: 0xC0000005: Access violation reading location 0x1271e40a.
and control goes to:
void CWnd::SetWindowText(LPCTSTR lpszString)
{
ENSURE(this);
ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
if (m_pCtrlSite == NULL)
::SetWindowText(m_hWnd, lpszString);
else
m_pCtrlSite->SetWindowText(lpszString);
}
|
|
|
|
|
I had posted this earlier but no reply. Sorry for posting it again
This is how it is...
My Class is defined in newclass.h as...
Class A
{
public:
void out_func1();
void out_func2();
class B
{
public:
string path;
in_func1();
};
};
I then Get the path at intialize.cpp as follows....
void A::out_func1()
{
B obj;
obj.path="c:\folder\file1.txt";
}
Then I try to open the file to write in write.cpp...
void A::out_func2()
{
B obj;
ofstream myfile;
myfile.open (obj.path.c_str(), ios::app);
...
}
This crashes.I have included the header initialise.h too.
Please let me know were I could have gone wrong. I think I am having problem with the scope of the varible. But I am not sure.
THANKS.
|
|
|
|
|
out_func1() and out_func2() uses different instance of the class B. You should use same instance of class B in both functions.
|
|
|
|
|
Actually you got replies.
I repeat myself: no wonder your application crashes, you're passing a uninitialized path to myfile.open .
Hint: usage of locals where class member (or method parameter) should be used.
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
|
|
|
|
|
Where do you initialize the variable obj? That kept aside you don't call out_func1 that is initializign the obj variable. Initialize and use the same variables.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
pl_kode wrote: obj.path="c:\folder\file1.txt";
Use below code,
obj.path="c:\\folder\\file1.txt";
Regards,
Paresh.
|
|
|
|
|
pl_kode wrote: myfile.open (obj.path.c_str(), ios::app);
obj has not been initialized.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
i created 3 property pages i am doing one of those 3 pages
i am getting like this
unresolved external symbol "public: static struct CRuntimeClass const CNSPropertyPage::classCNSPropertyPage" (?classCNSPropertyPage@CNSPropertyPage@@2UCRuntimeClass@@B)
followed by 30 LNK2001 errors
|
|
|
|
|
forgetting to link some libs ?
|
|
|
|
|
i checked but no libs missed
|
|
|
|
|
|
i created class CNSVirtualcircuitPath which is inherited from CNSPropertypage which is derived from CResizablePage
code i am writing for this page is already existing in my App i copied same code but this error is coming
|
|
|
|
|
and here i am giving some of examples
error LNK2001: unresolved external symbol "public: virtual bool __thiscall CNSPropertyPage::SkipFieldUpdate(class CString)" (?SkipFieldUpdate@CNSPropertyPage@@UAE_NVCString@@@Z)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::InitializeTagMap(void)" (?InitializeTagMap@CNSPropertyPage@@UAEXXZ)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::CreateTagMap(void)" (?CreateTagMap@CNSPropertyPage@@UAEXXZ)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::GetEditableDependentsList(class std::list<struct NSObject::ObjectDependencyInfo const *,class std::allocator<struct NSObject::Obj
ectDependencyInfo const *> > &)" (?GetEditableDependentsList@CNSPropertyPage@@UAEXAAV?$list@PBUObjectDependencyInfo@NSObject@@V?$allocator@PBUObjectDependencyInfo@NSObject@@@std@@@std@@@Z)
NSPathInformationPage.obj :
|
|
|
|
|
Did you add the .cpp file which contains the definition of CNSPropertyPage in your project ?
|
|
|
|
|
and here i am giving some of examples
error LNK2001: unresolved external symbol "public: virtual bool __thiscall CNSPropertyPage::SkipFieldUpdate(class CString)" (?SkipFieldUpdate@CNSPropertyPage@@UAE_NVCString@@@Z)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::InitializeTagMap(void)" (?InitializeTagMap@CNSPropertyPage@@UAEXXZ)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::CreateTagMap(void)" (?CreateTagMap@CNSPropertyPage@@UAEXXZ)
NSPathInformationPage.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CNSPropertyPage::GetEditableDependentsList(class std::list<struct NSObject::ObjectDependencyInfo const *,class std::allocator<struct NSObject::Obj
ectDependencyInfo const *> > &)" (?GetEditableDependentsList@CNSPropertyPage@@UAEXAAV?$list@PBUObjectDependencyInfo@NSObject@@V?$allocator@PBUObjectDependencyInfo@NSObject@@@std@@@std@@@Z)
NSPathInformationPage.obj :
|
|
|
|
|
did u miss the IMPLEMENT_DYNCREATE() macro in the cpp file of the property page? Put the following code in your cpp file just after the #includes...
IMPLEMENT_DYNCREATE(CNSPropertyPage, CPropertyPage)
|
|
|
|
|
i think that is not the problem i added correctly as
IMPLEMENT_DYNCREATE(CNSVirtualcircuitPath, CNSPropertyPage)
|
|
|
|
|
ok.
Have you added the file that contains the class CNSPropertyPage into the project? I mean, just take the file view tab and confirm that the cpp file is listed there.
|
|
|
|
|
i properly added that .h file in header file of CNSVirtualcircuitPath
but that file is in different DLL is there any communucation problem i am getting
|
|
|
|
|
If the body is in another DLL then you need to use dllexport and dllimport to tell the linker to put it into the DLL .lib file. Add the following code to your header file
#ifdef BUILDING_DLL/// export Dlls
#define SDK_EXPORT __declspec(dllexport)
#else
#define SDK_EXPORT __declspec(dllimport)
#endif
and then declare your class as follows:
class SDK_EXPORT CNSVirtualcircuitPath
{
...
}
Define BUILDING_DLL as a proprocessor define in the DLL project (and only in this project)
Graham
Librarians rule, Ook!
|
|
|
|
|
you mean the CNSPropertyPage is another dll? if so you definitly have to export the CNSPropertyPage class...
|
|
|
|
|
I created a dialog based appln.
How to add menu items to that dlg?
|
|
|
|
|
Insert-->Resource-->Menu..
Create your menu items.
ASdd this to the dialog by right clicking on the dialog..
Properties->General->Menu->IDR_MENU1
|
|
|
|
|
Its working!
Thank you for repling instantly.
|
|
|
|
|
Create a menu in the resource editor. Select dialog properties. there you will find an entry for Menu. Specify the resource id of the menu that you created. Compile and run. if everything is ok you should see the menu
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|