|
Could it be that no updates are available?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Thanks very much for ur reply at lightning speed,thanks for lthat
If u don't mind can i have ur mail id,
bcoz i have seen most of my reply from code project have come from u
If u remeber i have posted previously and got reply from u on questions such as
how to detect os remotely
Trapping system idle time in mfc
and now windows update
i can have ur id i will be obliged,
With Rgd
[VC++]
vcforums@gmail.com
|
|
|
|
|
I am a newbie to vc++. I did some C 15 years ago... but, normally, I'm a vb.net guy. However, my current job is VC++ and my boss wants me to place a class inside a .h and .cpp file that already has an existing class. I did this fine but when trying to define an instance of this class from another class, it seems invisible even though I have included the .h file.
Here's my code:
file1.h
class Class1
{
// definitions here
};
class Class2
{
// definitions here
};
File1.cpp:
#include "file1.h"
Class1::SomeFunction()
{
}
Class2::AnotherFunction()
{
}
File 2.h
#include "File1.h"
class Class3
{
Class2 cClass2; // not visible.
};
Any ideas?
Bill Dennis
Orlando, FL
|
|
|
|
|
Are you using namespaces in file1.h ?
What extactly do you mean by 'not visible' ?
Are there some compiler errors ?
Horror and moral terror are your friends. If they are not then they are enemies to be feared.
|
|
|
|
|
No, no namespaces. Boss doesn;t want to use namespaces.
Getting undefined class error when compiling on the line where I am insantiating a new class variable:
Class2 cClass2;
Bill Dennis
Orlando, FL
|
|
|
|
|
are you sure you're not having trouble with the class name ??
be careful, C/C++ is case sensitive (unlike VB/VB.NET)...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
|
Maybe there is a conflict between some #define directives
#ifndef DONT_INCLUDE_TWICE
#define DONT_INCLUDE_TWICE
class Class1
{
};
#endif
#ifndef DONT_INCLUDE_TWICE
#define DONT_INCLUDE_TWICE
class Class2
{
};
#endif
If DONT_INCLUDE_TWICE is already defined, the definition of Class2 will be skipped.
Maybe you can post your header files here...
Horror and moral terror are your friends. If they are not then they are enemies to be feared.
|
|
|
|
|
but if that was the problem, he would have an error such as "Class already defined"...
but the compiler says that the class is NOT defined, even with the header include...
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
billiam904 wrote:
Boss doesn;t want to use namespaces.
Then don't tell him/her that you can't get away from using the global namespace!
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Wish I could. He wants me to do it the way he tells me to do it.
Would I have to include the .NET framework if I use namespaces?
|
|
|
|
|
Bill Dennis wrote:
Would I have to include the .NET framework if I use namespaces?
No. Namespaces have nothing to do with the .NET framework. It's just the name of a declarative region in your code. All programs use (or have use of) the global namespace. If you use STL, you will see references to the std namespace.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
I just put your three files into an existing project and it compiled fine. The problem must lie with code that has not been shown.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
I am attempting to paste some code here but due to contract restrictions, I can't paste it all.
sharewaredlg.h:
#if !defined(AFX_SHAREWAREDLG_H__609C8E03_67C4_11D3_A859_00000E00ECA4__INCLUDED_)
#define AFX_SHAREWAREDLG_H__609C8E03_67C4_11D3_A859_00000E00ECA4__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "RegisterDlg.h"
#include "WavRead.h"
class CSharewareDlg : public CDialog
{
};
class CDemoAudio
{
private:
CWavRead m_cWavRead;
public:
BYTE *ReadDemoIntoBuffer();
void PlayBuffer(BYTE *pDemoBuffer, WAVEHDR *hdrDemo, DWORD dwDataBufferSize);
BYTE *GetDemoBuffer();
DWORD GetDemoSize();
protected:
// variables
DWORD dwOutDataSize;
BYTE* m_pbyDemoBuffer;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SHAREWAREDLG_H__609C8E03_67C4_11D3_A859_00000E00ECA4__INCLUDED_)
SingleDlg.h:
#if !defined(AFX_SINGLEDLG_H__B2588407_6984_11D1_A856_444553540000__INCLUDED_)
#define AFX_SINGLEDLG_H__B2588407_6984_11D1_A856_444553540000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// Shareware stuff
#include "SharewareDlg.h"
struct THREADPARMS_RECORD
{
CWnd *pWnd;
CSingleAlg *pckSingleAlg;
CWavWrite *pWavWrite;
CWavRecord *pWavRecord;
// BD 10/05 ADDED PARM FOR CWAVREAD
CWavRead *pWavRead;
// BD 10/05 ADDED DEMO PARMS.
CDemoAudio *pDemoAudio; // error here undefined class.
BYTE *pbyDemoBuffer;
int *pnRegLevel;
// =========================
BYTE *pbyBuffer;
int *pnBufferSize;
CString *pstrCurFile;
CString *pstrCurFilePath;
CEvent *pEvent;
CCriticalSection *pCriticalSection;
int *pnStop;
};
class CSingleDlg : public CDialog
{
protected:
// Program variables
CSingleAlg m_ckSingleAlg;
CWavWrite m_cWavWrite;
CWavRecord m_cWavRecord;
CWavRead m_cWavRead;
// =========DEMO====================
// Demo variables BD 10/05
CDemoAudio m_cDemoAudio; // Error here. m_cDemoAudio utilizing Undefined class.
// =================================
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SINGLEDLG_H__B2588407_6984_11D1_A856_444553540000__INCLUDED_)
|
|
|
|
|
It's *got* to be something in my SharewareDlg.h file because I moved my class to a separate file and it worked fine. Thanks.
Bill Dennis
|
|
|
|
|
Check to see if you have a copy of SharewareDlg.h in some other directory in the include path. You might be adding your class in a different file than the one the compiler is picking.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
I fixed the problem by moving my class to the very beginning of SharewareDlg.h before the if !defined statement.
Thanks, guys.
|
|
|
|
|
Anonymous wrote:
I fixed the problem by moving my class to the very beginning of SharewareDlg.h before the if !defined statement.
I think you fixed the symptom, not the problem...
Anonymous wrote:
Thanks, guys.
You're welcome.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Hi all,
I'm working on an application that preferably has to send a mail to the user once in a while while it's running. Problem is that it really also has to be able do this when the pc is connected to the internet through another account (other ISP).
The question is: how can I do this as flexible as possible?
- Sending the info with HTTP GET or POST works fine, uses port 80 which is usually open already, but needs some kind of PHP script installed on a webserver to accept the info and mail it. This is the disadvantage (not so user friendly).
- Using local computer settings (SMTP server) to mail from within the app works too, but won't necessarily work anymore when the pc is connected through another internet account. For example, my ISP only allows to use their SMTP server. So I can not use the one from my hosting company. If I connect my pc somewhere else, with an internet account not from my ISP, then my settings won't work.
- Could I use a built-in SMTP sever in my app? Are there ways to make sure the mail can be sent, no matter which ISP account is used (see problem above)? Won't a built-in SMTP server be blocked frequently by firewall settings? Can you mail through more standard ports (80?) instead?
- Or should I just let the user configure more SMTP servers and let the app traverse the list until it finds one that works?
I hope you see what I want to do and what my problem is.
Any suggestions are greatly appreciated!
SonOfGrey
-- modified at 5:22 Friday 7th October, 2005
|
|
|
|
|
Hi again!
I now have another (simple) problem!
I have a dialog box with a listbox control on it, which has been loaded with several strings. I want to be able to select a string, and then delete it by pressing the <delete> key. I havnt been able to detect any key being pressed. What do I need to do?
I have used MFC Classwizard to add message handlers for WM_KEY_DOWN and WM_KEY_UP, but it doesnt seam to work - where am I going wrong?
Thanks yet again!
|
|
|
|
|
You can subclass the control. Create message handler for WM_KEYUP message:
void ..... OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar == VK_DELETE)
{
}
CListBox::OnKeyUp(nChar, nRepCnt, nFlags);
}
Maybe there are better ways.
this is this.
|
|
|
|
|
Hi Khan++
Thanks for your help - yep thats got it now!
Thanks again
Mike
|
|
|
|
|
Is anybody developing apps/components that are OPC compliance. I just wanted to know if OPC is still alive and it's used as standard for industrial client / server applications.
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
OPC clients are developed all the time at Wonderware - www.wonderware.com
Many third parties write OPC clients as well and OPC servers for the PLC devices.
|
|
|
|
|
I just wondered if OPC is the main protocol/standard that is used for inustrial communications. Thanks for ithe info.
What are trends in this item, I mean, are there any other teck or standard that some companies are investing ?
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|