|
Hello there.
I have an MFC application running on Windows2K that opens a CDatabase object like so:
CDatabase cDB;
DWORD dwOptions = CDatabase::useCursorLib | CDatabase::noOdbcDialog;
cDB.OpenEx ("DSN";"****";"****", dwOptions);
For some reason though, if I alter the configuration for DSN (using the ODBC admin tool in Control Panel) such that it points to a different server, the application still tries to connect to the first server.
This is odd as, when examining the DSN directly (using the admin tool) it points to the new server alright - it's only when my application uses the above function call that the DSN seems to point to the original server. (And I am restarting the application)
Has anyone ever come across anything like this before??
Hmmmmmm....
Len.
|
|
|
|
|
hi all ... sorry if this is a dumb one yet again but i have been bumbling around for a while going ever so slightly dilly so i figured its time to ask the wise ones
a user clicks an item in a listview control and the item (or whole line) goes dark blue (selected) ... i dont want it to so i tried playing around with the state mask thingy but it doesnt seem to work ... anybody got any clues?
thanks
"... and so i said to him ... if it don't dance (or code) and you can't eat it either f**k it or throw it away" sonork: 100.18128 8028finder.com
|
|
|
|
|
lauren wrote:
anybody got any clues?
:: Jeremy pulls off his black top hat, tips it, and winks. ...a twitch and snap of the fingers... Poof! goes the smoke aloft from the hat. He pulls out a piece of paper, unfolds it, and says... ::
Behold Lauren, the answer:
Subclass the list box's window procedure. Intercept WM_SETFOCUS and return FALSE for it.
Care for some code?
Jeremy Falcon
Imputek
<nobr>"..." - Paul Watson 07-17
|
|
|
|
|
rock and...
"... and so i said to him ... if it don't dance (or code) and you can't eat it either f**k it or throw it away" sonork: 100.18128 8028finder.com
|
|
|
|
|
'twas a bit tricky to find the first time i needed to, but it's suprisingly easy. Handle the LVN_ITEMCHANGING notification, and examine the uChanged member of the NM_LISTVIEW structure referenced. If the change being made is to the LVIS_SELECTED bit, then set the return value to true , otherwise false (true prevents the change from occuring). Example (this prevents selection and drophighlighting)(MFC):
void CMyDialog::OnItemchangingInMyList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = FALSE;
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if ( pNMListView->uChanged & LVIS_SELECTED || pNMListView->uChanged & LVIS_DROPHILITED )
*pResult = TRUE;
}
Shog9
--
Maybe Java is kind of like God, it "works in mysterious ways". It seems like your apps are running slowly, because in the backgroud Java is solving world hunger, or finding the cure to cancer.
- Ryan Johnston, Don't die java!
|
|
|
|
|
...roll guys!
thnx
"... and so i said to him ... if it don't dance (or code) and you can't eat it either f**k it or throw it away" sonork: 100.18128 8028finder.com
|
|
|
|
|
Hi, I need to exchange numeric and string data between several application types (Visual Basic, VBScript in web pages...) and a Visual C++ COM object; a lot of information should be transfered in any call and simple parameter exchange looks not too smart. What should I do? XML or something else?
Thanks.
"nobody knows it, but you´ve got a secret smile, and you use it only for me"
|
|
|
|
|
dde still works for some apps
xml is a smart extensible way to go tho
depends on the frequency of the data exchanges ... if they are real time it might not be good ... then u would have to go named pipes or something
"... and so i said to him ... if it don't dance (or code) and you can't eat it either f**k it or throw it away" sonork: 100.18128 8028finder.com
|
|
|
|
|
You could put them into a SAFEARRAY and pass it as one argument in a VARIANT.
|
|
|
|
|
Hi,
Is it possible to insert an own icon inside an afxMessageBox, like MB_ICONINFORMATION, etc.
|
|
|
|
|
Check Robert Pittenger's article Add a Help Button to a MessageBox, which replaces AfxMessageBox with a home made version using ::MessageBoxIndirect . Altough not directly supported, the source code in the article shows where you should insert the information necessary to change the predefined icon.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Can anyone tell me why the following code causes compile errors?
try
{
int foo = 1+1;
} catch(...)
{
int bar = 11;
}
error C2059: syntax error : 'catch'
error C2143: syntax error : missing ';' before '{'
I have exception handling turned on (command line option /GX) in the project settings.
Any ideas?
TIA,
Pete
|
|
|
|
|
Is your source file named with a .cpp extension?
If it is .c, I think VC++ will assume it is to be
compiled as plain c code.
|
|
|
|
|
Nope, it's got a .cpp extension.
What's confusing me is that it seems to have no problem with the try block, although that may be due to the way the compiler is parsing the file.
|
|
|
|
|
It shouldn't be causing any error. Can you provide more info about where this piece of code is inserted?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Well, the orginal problem was from some code in the depths of MS's STL code, namely INCLUDE\xstring....
template<class _E,
class _Tr = char_traits<_E>,
class _A = allocator<_E> >
class basic_string {
...
...
...
_TRY_BEGIN
_S = allocator.allocate(_Ns + 2, (void *)0);
_CATCH_ALL
_Ns = _N;
_S = allocator.allocate(_Ns + 2, (void *)0);
_CATCH_END
with the following defines in INCLUDE\xstddef
#define _TRY_BEGIN try {
#define _CATCH(x) } catch (x) {
#define _CATCH_ALL } catch (...) {
#define _CATCH_END }
The errors I get are:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(527) : error C2059: syntax error : 'catch'
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(521) : while compiling class-template member function 'void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Copy(unsigned int)'
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(527) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xstring(521) : while compiling class-template member function 'void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Copy(unsigned int)'
I haven't had any problems with the STL before, but the project I'm trying to compile is a .dll for use by DirectShow, so it has some wierd project settings. I can't really explain what is wierd about them, as I don't understand them too well (the project is based on a sample from the DirectX documentation).
Does that help? Any more info you need?
Pete
|
|
|
|
|
Does that help? Any more info you need?
Could you please post the beginning of the .cpp where this is included (implicitly or explicitly)?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
#include "CenFilter.h"
#include < initguid.h >
#include "../vss/fdckid.h"
#include "CenFilter.h"
#include <initguid.h>
#include "../vss/fdckid.h"
#include "../vss/array.h"
#pragma warning(disable: 4800)
IPin * GetInPin( IBaseFilter * pFilter, int PinNum );
IPin * GetOutPin( IBaseFilter * pFilter, int PinNum );
#pragma once
#include < streams.h >
#include "../../vss/ImageProcessing.h"
#ifdef _DEBUG
#include < stdio.h >
char static gDbgStr[200];
#endif
Is this what you need?
|
|
|
|
|
The code didn't seem to help much... I'm far from sure about what follows, but it's worth giving a try. Go to Project->Settings, C/C++ tab, Code Generation, enable C++ exceptions.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Already tried that
|
|
|
|
|
I just noticed something. In the project settings command line options there is the following:
/D try=__try /D except=__except /D leave=__leave /D finally=__finally...
which I'm guessing redefines try to __try, etc.
Looking in MSDN, it seems that __try is a MS-specific extension for C. It also says:
"Note Structured exception handling works with Win32 for both C and C++ source files. However, it is not specifically designed for C++. You can ensure that your code is more portable by using C++ exception handling. Also, C++ exception handling is more flexible, in that it can handle exceptions of any type. For C++ programs, it is recommended that you use the new C++ exception-handling mechanism (try, catch, and throw statements). "
Maybe I'll try removing those lines in the project settings and see what happens...
|
|
|
|
|
Ummm... think you've got something now. Please tell us the result. Good luck.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hurray!
Yep, that (eventually) fixed the problems.
Thanks for the help Joaquin,
Pete
|
|
|
|
|
Thanks for the help Joaquin
I didn't help much this time, it was all your job.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
well, thanks for the moral support then
|
|
|
|