|
XLCALL32.lib is an object library, not an 'inline file'. An object library is a collection of object modules, compiled previously.
From the Project menu, select Properties. In the dialog, select Linker and then Input. Add XLCALL32.lib to the Additional dependencies field.
Software Zen: delete this;
|
|
|
|
|
I am building a dll that is supposed to be using Unicode but I am having some problems. I won't go into a lot of detail but here's a quick summary -
I am using grid software that requires a CString to be passed into it's SetText() function. I have a structure that has the follwing member:
struct MYSTRUCT{
TCHAR szDescription[512];
};
So, when I reach the point where I need to set my grid text, I use the following:
CString szTxt(struct.szDescription);
It fails indside the CString code in AllocBuffer() where it is actually doing the "new" call.
I don't expect anyone to know how to solve this but one thing that jumps out at me is that when I type sizeof(TCHAR) into my watch window, it returns a value of 1. I was expecting 2. I have "UNICODE" and "_UNICODE" defined in the project settings.
Any idea?
|
|
|
|
|
Dave_ wrote:
I don't expect anyone to know how to solve this but one thing that jumps out at me is that when I type sizeof(TCHAR) into my watch window, it returns a value of 1. I was expecting 2. I have "UNICODE" and "_UNICODE" defined in the project settings.
Try placing #define UNICODE and #define _UNICODE in the stdafx.h file before any other #include statements. It shouldn't matter if those directives are in the code or are in the project settings, but you never know...
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
Also, you might verify it is not the 'watch' window getting messed up, and do something like this in your (debug) build:
size_t szTemp = sizeof(TCHAR);
and quickwatch the value of szTemp. Is it 1 or 2?
Just to double-check against a wierd anomaly in the watch window's expression parsing or something.
|
|
|
|
|
Hi,
I am trying to populate the MsFlexGrid control by using the SetDataSource property of the MSFlexGrid COntrol.. but I am getting the "Type Mismatch" error.
can anyone tell me how to use MSFlexGrid and CRecordset together in an app.
Regards,
Sylvester12
|
|
|
|
|
Sylvester12 wrote:
...but I am getting the "Type Mismatch" error.
can anyone tell me how to use MSFlexGrid and CRecordset together in an app.
Not without seeing a relevant code snippet.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi,
Here is the piece of code thats cauing the error:
m_DataSource is an object of CRecordset which contains records from a database table.
m_Grid.SetDataSource(NULL);
m_Grid.SetDataSource( (LPDISPATCH) m_DataSource);
m_Grid.Refresh();
UpdateData(FALSE);
|
|
|
|
|
Ok, so which of these four statements causes the error? I've never used the MSFlexGrid object but that first statement seems unnecessary. The UpdateData() call is suspect.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
my question not about VC++, it's about turbo C++ (under dos)
i need to know where i can find the number of general 8086 software interrupt interfaces .
i want to use it with this function:
int86(0x??,??,??)
last but not lest i am sorry because i make this question in the forum of VC++ because you don't have TC++ forum.
|
|
|
|
|
Wow, it's been over 14 years since I last used Turbo C. It was a fun compiler and I learned gobs from it. My only two suggestions would be to Google for int86() and note the interrupts that are being called. I also had a book called "Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures" by Andrew Schulman. Good luck!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
IIRC (and it's been a long time) there were a number of reserved interrupts, and a few user interrupts available. Executable files were loaded at address 0x0100; addresses below that were allocated to interrupt handlers, 4 bytes at a time. Int0 got 0x000, INT1 had 0x0010, etc. It was common practice to replace the JMP (0x3c) operands to add new functions to DOS, or to implement user functions. One possible resource for you is Ralf Brown's Interrupt List[^].
"If it's Snowbird season, why can't we shoot them?" - Overheard in a bar in Bullhead City
|
|
|
|
|
Ive been working on a program using Microsoft Visual C++ 6.0 (with MFC app)... I am now queued at the Tree control part... Using the Control Palette it opens a control area and all tutorials i see are about AddString... I was wondering how i could get it to view the files in its folder, list all txt files in its folder, is it possible?
Just a Human Trying to Live in a Computers World.
|
|
|
|
|
|
Hello!
How can I make my window lose the focus? The window with that the user worked before should get the focus back (so not just any other random top-level window).
Best regards
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)
|
|
|
|
|
Set the focus to another window (someWnd.SetFocus())
SkyWalker
|
|
|
|
|
I don't know the handle of the window that had the focus before.
Think of this: the user works in notepad. Now he switches to my app and does something. My app must lose the focus and he must be in notepad again.
Idea?
Best regards
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)
|
|
|
|
|
GetFocus() return a pointer to the window having the focus.
SkyWalker
|
|
|
|
|
Could you be more explicit?
If the user wants to go back to notepad, he clicks that window, so that window gets the focus.
I'm afraid I do not understand what you need
SkyWalker
|
|
|
|
|
Maybe you know my project KeePass Password Safe. The user has the option to auto-type some string, i.e. the KeePass window loses the focus and the window that had the focus before will receive simulated key-presses.
Now I face the problem of losing the focus without minimizing. If I just say ShowWindow(SW_MINIMIZE) the window automatically loses the focus and the keys are typed into the right window. But now I need a method to lose the focus, without minimizing.
Idea?
Best regards
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)
|
|
|
|
|
1. To simply lose the focus, you call SetFocus(NULL);
2. MSDN says that:
"Windows created in different threads typically process input independently of each other. That is, they have their own input states (focus, active, capture windows, key state, queue status, and so on), and they are not synchronized with the input processing of other threads. By using the AttachThreadInput function, a thread can attach its input processing to another thread. This also allows threads to share their input states, so they can call the SetFocus function to set the keyboard focus to a window of a different thread."
Maybe one of these help?
SkyWalker
|
|
|
|
|
> Maybe one of these help?
Unfortunately not
1. looks good but doesn't work. The previously used window doesn't get the focus.
2. I couldn't get the AttachThreadInput function to work... It doesn't seem to do anything...
Thanks and best regards
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)
|
|
|
|
|
Could SetWindowPos be what you are looking for? You can use that to push your window to the back of all others.. Just an idea.
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
When I do
SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); it gets nicely into the background, but doesn't lose the focus...
More ideas?
Best regards
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)
|
|
|
|
|
The WM_ACTIVATEAPP message gives you the thread ID of the app that had or is getting the focus from your app. You might be able to use EnumThreadWindows to find the window associated with the thread. When you want to set focus back to that window use SetForegroundWindow.
Hope this helps, as it is all quessing. Never done this myself.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|