|
|
I have upgraded a VC++ 6 ATL project to VC++ .NET, which went without problem. The problems started however when I tried to get rid of the .idl and .rgs files and use the new attributes directly in the class headers instead. Tons of error messages!!
An example for one of my classes called CSAS:
SAS.h(20) : error C2011: 'ISAS' : 'struct' type redefinition
MyUtil.h(445) : see declaration of 'ISAS'
The project is called "MyUtil" and there seems to be something in the MyUtil.h it doesn't like.
Can some of you talented people out here give me some advice of what might be wrong?
Is there some global project setting that's missing?
|
|
|
|
|
I'new at c++. I trying to write a program that calculates monthly payments. Formula is Payment= rate*(1+rate)n/((1+rate)n-1)*L
rate= monthly interest rate
n=number of payments
L=amount of loan
I get a c2660 error function does not take 1 parameters.
I just can't seem to figure it out.
|
|
|
|
|
iasaber wrote:
Payment= rate*(1+rate)n/((1+rate)n-1)*L
Is this your code? If so, you're missing a couple asterisks:
Payment = rate*(1+rate)*n/((1+rate)*n-1)*L
- Mike
|
|
|
|
|
Does anybody know how to use the $$BEGINLOOP and $$ENDLOOP macros correctly when designing a wizard for Visual Studio 6. I want to use those macros to loop through a list of file names that are defined by macros. I have the following code in my newproj.inf file
$$BEGINLOOP (COUNT) //where COUNT is defined as being a number
empty $$NAME$$.idl //where NAME is a key in the dictionary. There are a number of NAME keys e.g. NAME0, NAME1
$$ENDLOOP
I am the handsome one in the crowd.
|
|
|
|
|
In migrating from VC 6.0 to VC 7.1 I'm running into a problem figuring out how to include stdafx.h into a Win 32 application. After creating an empty project, I changed settings to "Using MFC in a shared DLL". I was able to run the first program in Prosise's MFC Programming book, but received a warning. The program is so small that I'll repoduce it here and then specify the exact problem after it:
// Hello.h
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP ()
};// end Hello.h
////// Here comes Hello.cpp
#include "afxwin.h" // actually used less than & greater than symbol here but needed quotes for this post
#include "Hello.h"
CMyApp myApp;
//////////////////////////////////////////////////////////
//////// CMyApp member functions
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
///////////////////////////////////////////////////////////
//////// CMainWindow message map and member functions
BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
Create(NULL, _T("The Hello Application"));
}
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText(_T("Hello, MFC"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
///////////That's it
This program runs fine as is but I get the following warning during the build:
Compiling...
Hello.cpp
WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
Linking...
Build log was saved at "file://c:\TEST_MFCProsise\Hello\Debug\BuildLog.htm"
Hello - 0 error(s), 0 warning(s)
---------------------- Done ----------------------
Build: 1 succeeded, 0 failed, 0 skipped
///////////////
So then I commented out the afxwin.h include and included "stdafx.h" which, I thought, would take care of the warning. Instead the program would not compile and I received this error:
Compiling...
Hello.cpp
c:\TEST_MFCProsise\Hello\Hello.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Build log was saved at "file://c:\TEST_MFCProsise\Hello\Debug\BuildLog.htm"
Hello - 1 error(s), 0 warning(s)
---------------------- Done ----------------------
Build: 0 succeeded, 1 failed, 0 skipped
The stdafx.h file is right where it's supposed to be inside of the atlmfc subdirectory, and MFC applications don't have any problem finding it. What do I have to do to run Win 32 applications using MFC in a shared DLL and including stdafx.h?
Ed
|
|
|
|
|
Silly question - do you have an StdAfx.h file in the same folder as your .cpp and .h files?
If your nose runs and your feet smell, then you're built upside down.
|
|
|
|
|
|
It's always something like that, isn't it?
If your nose runs and your feet smell, then you're built upside down.
|
|
|
|
|
Containers is a collection in the DAO Object Model. Using it we can enumerate containers in an access database (we can find objects which are not part of DAO such forms and reports). The documentation says :
1. We can add "custom containers" to an access database
2. We can't use DAO for this purpose
The Containers collection does'nt include an Append Method like other collections. It can be used only for enumerating the containers.
Access can add custom collections and use them (forms, reports, scripts, ...).
My Question is : what can this be done ?
Please help !!! It's critical to my current project.
Best regards !!!
|
|
|
|
|
Hi
I have some syntax question which is bothering me. Can someone pls explain to me what these codes means or where to find answer to question with regards to syntax ? (I have access to MSDN library but I am still unable to find a satisficatory answer from there)
1. BOOL BOAPI ShowMessage (int, int)
what does this function syntax means ?? esp BOAPI is it a data type ? something to do with dll convention ??
2. #typedef bool (TYPEOF_InitP) (int *a);
what does this syntax means ?? does it mean let TYPEOF_InitP be a function that return bool and take in 1 int variable ??
PLease advise. Thank you !!
bk
|
|
|
|
|
boon kian wrote:
BOOL BOAPI ShowMessage (int, int)
That entirely depends on what the BOAPI macro is defined as. It's probably a calling convention such as __stdcall
boon kian wrote:
#typedef bool (TYPEOF_InitP) (int* a);
Assuming the # is a typo, that still isn't legal AFAICT. If you meant
typedef bool (*TYPEOF_InitP) (int *a);
then that means TYPEOF_InitP is a function pointer, that can point to functions that take an int* parameter and return a bool .
--Mike--
Ericahist | CP SearchBar v2.0.2 | Homepage | RightClick-Encrypt | 1ClickPicGrabber
"That probably would've sounded more commanding if I wasn't wearing my yummy sushi pajamas."
-- Buffy
|
|
|
|
|
Hi Mike,
Thank you. But i still have some doubts to clarify:
BOOL BOAPI ShowMessage (int, int) is a function.
So when u need to call the function, u would do a normal
ShowMessage (1,2) rite ?
But when you call the function am i rite to say that a BOAPI macro would run first follow by the ShowMessage function ? If not, when would the BOAPI macro runs or how is it been used?
Sorry for my poor command of the c-language. Please advise. Thank you.
bk
(btw u are rite abt the # typo and the missing * could also be a typo from the original source)
|
|
|
|
|
Yes, it's a normal function, so ShowMessage( 1, 2) would "work".
In this instance, I think it's more likely that BOAPI is a simple text substitution, to something like __stdcall, as Mike has already said. This makes the code look like this
BOOL __stdcall ShowMessage(int, int)
which just says how the stack is used in terms of pushing params and cleaning up.
There is no additional code to be executed.
Steve S
|
|
|
|
|
Hi Steve and Mike
Thanks a lot !! I think i roughly get the idea already !
bk
|
|
|
|
|
is there a toolbar expert?
the quest:
disable a button.
the code:
m_wndToolBar.GetToolBarCtrl().SendMessage(TB_ENABLEBUTTON,(WPARAM)ID_...,(LPARAM)MAKELONG(FALSE,0));
or
m_wndToolBar.GetToolBarCtrl().EnableButton(ID_...,FALSE);
the problem:
the button is gray for a fraction of a second and them changes back to enable
the info:
i have a event handler for this button and its working.
i can disable the menu item with the same ID.
i have all event handler in the C...App.
i am using the "m_bAutoMenuEnable = FALSE".
no, i am not enabeling the button elsewhere.
yes, i am out of ideas...
the question:
what's the problem?
the state of mind:
MSN:maxsnts@hotmail.com
|
|
|
|
|
simply disable menu item associated with the button, or change auto-disable menu feature in CWinApp class.
includeh10
|
|
|
|
|
thanks for your reply , but as i can disable the menu item and the toolbar button remains enable
|
|
|
|
|
if double click a cpp file, VC is loaded automatically and displays the file.
OK, now i need to load my app if user double clicks our file with special extension.
i know i need to do something with register, but what and how?
thx for any light.
includeh10
|
|
|
|
|
REG file:
REGEDIT
HKEY_CLASSES_ROOT\.vgb = VGrab.Document
HKEY_CLASSES_ROOT\VGrab.Document\shell\open\command = VGRAB.EXE %1
HKEY_CLASSES_ROOT\VGrab.Document\shell\open\ddeexec = [open("%1")]
HKEY_CLASSES_ROOT\VGrab.Document\shell\open\ddeexec\application = VGRAB
HKEY_CLASSES_ROOT\VGrab.Document = VGrab file
Now replace all vgb and VGrab by your file.
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
no path of my app in register?
includeh10
|
|
|
|
|
Yes, sorry. Replace VGrab.exe by the full path name of your application. The DDE command remains "VGRAB".
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
when a menu is popup,how i could get it's HWND?
love program
|
|
|
|
|
use EnumWindows to get the menu handle.
menu is a window also, and must be active one in enums.
then get its parent, which is window u need.
includeh10
|
|
|
|
|
Hello,
how can one see at compilation time if the compiler compiles the application for 32-bit or 64-bit processors?
sizeof(int) doesn't work for all compilers.
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|