|
In the dll I export the Test class like this...
class __declspec(dllexport) Test
{
public:
Test() { }
~Test() { }
virtual long GetCountRows() { return 1; }
};
Achim Mueller
|
|
|
|
|
How are you then going about importing this class into the other project? Is the code you provided for Test the actual code? I ask because here you have a inline and virtual method - by defination a virtual function can't be inline, it needs an entry in the v-table to work correctly - though compliers do tend to work with them, its worth a try removing it. If you are just directly including the Test header file into your other project, this may be causing you problems. Try declaring the class as you usually would, and splitting up the deifination. Ie in the .H
class __declspec(dllexport) Test
{
public:
Test();
~Test();
virtual long GetCountRows();
};
Then in the .CPP
Test::Test()
{
}
Test::~Test()
{
}
long Test::GetRowCount()
{
return 1;
}
|
|
|
|
|
Hi !
I just wanted to know how is represented an enum internally. Is it an int or a long ?
Thanks !
Jerome
|
|
|
|
|
In Microsoft 32-bit C++, an int and a long are the same size (32-bits). So the answer is "yes".
|
|
|
|
|
|
I got a problem here.
I need to link the microsoft excel to C++. The excel will act as a database for the coordinates..and i need to programme some commands for these coordinates like 3
|
|
|
|
|
I think that you need to use VBA. It's more easy and cames with excel....
Best Regards
Carlos Antollini
Do you know piFive[^] ?
|
|
|
|
|
Does it comes with windows 2000?
How do I operate/run it?
|
|
|
|
|
VBA is part of Office, independent of the OS. Check out MSDN for tons of examples.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
If you need add same funtions to excel, you need to use VBA, but if you want automate some function from external sources, may be you need to use OLE Automation, How David said... In that case you can use VC++ or VB.
Carlos Antollini
Do you know piFive[^] ?
|
|
|
|
|
If you need add same special funtions to excel, you need to use VBA, but if you want automate some function from external sources, may be you need to use OLE Automation, How David said... In that case you can use VC++ or VB.
Carlos Antollini
Do you know piFive[^] ?
|
|
|
|
|
It sounds like you need to use Excel (OLE) Automation. Check out MSDN article Q178749.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
Hi,
You can access all of Excels built in functionality by following these steps in an MFC app:
1) Open Class Wizard
2) Click 'Add Class' and select 'From Type Library'
3) Locate 'Excel9.olb' (will vary depending on which version of office u r using)
4) Select all the classes from the list and click ok.
you will now be able to do anything u want with Excel. For more information look at:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q196/7/76.asp&NoWebContent=1&NoWebContent=1
hth
|
|
|
|
|
Hey guys, maybe an easy question...
i want to start my programm in maximized mode, how can i do this? i think it´s working with SIZE_MAXIMIZED but i don´t know where and how to use it.
Thanks in advance
Pascal Rexer
|
|
|
|
|
In the OnInitDialog() method, post a WM_SYSCOMMAND message with SC_MAXIMIZE in wParam .
Or you can call ShowWindow(SW_SHOWMAXIMIZED) .
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
Thanks for help
|
|
|
|
|
Hi
I'm moving one of my programs from MSVC 6 to .NET 2003 and
now the librare is changed so that
basic_istream::get calls setstate(failbit) if no elements was extracted
Is there any clean way to go around this, for me a empty string is a normal case?
Regards
Per
|
|
|
|
|
Guys I got a question,
When you use the Ambersand sign "&" infront of a variable it means we are passing the address of that variable , right?
what happents when you have the "&" at the end of the variable .
Ex :
if I have a function header
exam(const K&, const V&);
what is the usgae of & in the above?
and what is the difference between this one
exam(const &K, const &V);
|
|
|
|
|
Sounds like a reference.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
Putting the ampersand in front of a variable returns the address in memory where the variable is stored.
You cannot put the ampersand into the end of a variable. That is not legit. If you want the create a reference object, you put the ampersand after the variable's type declaration.
An example:
int a = 10; // A is a an int-variable
int& b = a; // B is a reference to A: altering B alters A and vice versa.
b = 20; // This would set A to '20'.
The code pieces you posted (const K&) declare constant references to objects. It means that you cannot alter the contents of the object through the reference. Note that references cannot be re-assigned after declaration: when you create the variable, you state where it refers to.
An example:
int a = 10;
const int& b = a;
b = 20; // This would cause a compiler error C2166
Constant references are often used in function calls to let the function have access to the variable without a permission to modify it. This means that in the above example, you can use variable B to read variable A's contents, but you can't modify it.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
exam(const K&, const V&);
I beleive this is a syntax error and should not compile.
exam(const &K, const &V);
The 2 arguments are references not pointers and since no variable type was supplied, they default to interger references.
INTP
|
|
|
|
|
I have an C++ application in Visual Studio.net (2002). This application uses an external DLL (with templates) made by .net. However, I also wants to use my own old DLLs made by VC6. Then I get a linker error. I found out that this error id due to name mangling for exported template instantiations. No problems if I recompile my DLLs with .net. However these new DLLs does not work with my old applications using these DLLs. My question is if there is another solution than having two source codes identical DLLs, one compiled with VC6 and the other compiled with .net?
|
|
|
|
|
Are there any rules for notification messages of custom controls?
(i.e. for windows messages, there is "use WM_USER..WM_APP-1 for custom control specific messages, and WMAPP... for applciation-specific stuff". Is there something similar for Notification codes?)
I'd like to use "normal" WM_NOTIFY messages with custom notification codes, if that's an option.
Flirt harder, I'm a coder.
mlog || Agile Programming | doxygen
|
|
|
|
|
Hi Everyone!
I'm running WinXP and I have made a project in Win32 C++.
The problem is when I subclass a control(any control).
(In windows 98 I don't have this problem)
My subclass code is :
// IDC_NUM edit control ID
WNDPROC OldEditControl; // as a global
OldEditControl = (WNDPROC)SetWindowLong(GetDlgItem(hwnd, IDC_NUM), GWL_WNDPROC, (LONG)EditProc);
and the EditProc is :
LRESULT APIENTRY EditProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// My messages
return (LRESULT)CallWindowProc(OldEditControl, hwnd, msg, wParam, lParam);
}
the compiler shows me this warning messages:
warning C4311: 'type cast' : pointer truncation from 'LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' to 'LONG'
warning C4312: 'type cast' : conversion from 'LONG' to 'WNDPROC' of greater size
What's wrong?
|
|
|
|
|
Dennis L wrote:
WNDPROC OldEditControl; // as a global
OldEditControl = (WNDPROC)SetWindowLong(GetDlgItem(hwnd, IDC_NUM), GWL_WNDPROC, (LONG)EditProc);
It seems you are doing funny things with the return value of the window-function. MSDN has the following information about SetWindowLong s return value:
<br />
If the function succeeds, the return value is the previous value of the specified 32-bit integer.<br />
<br />
If the function fails, the return value is zero. To get extended error information, call GetLastError. <br />
<br />
If the previous value of the specified 32-bit integer is zero, and the function succeeds, the return value is zero, but the function does not clear the last error information. This makes it difficult to determine success or failure. To deal with this, you should clear the last error information by calling SetLastError(0) before calling SetWindowLong. Then, function failure will be indicated by a return value of zero and a GetLastError result that is nonzero.
It simply is no WNDPROC value.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|