|
Hello,
Can i able to save this image in disk (with the transparency i changed). i tried to save using bitmap.save, it showing black image.
Thanks,
A. Gopinath.
|
|
|
|
|
Hello,
I am a bit of a newbie with C++ and windows programming so I wonder if someone can help.
I am writing an app that needs to capture raw and then via an IPC pass that information on to another process. I have looked at using Global Hooks but unfortunately that are not going to work for me.
So what I want to know is... how do I go about directly receiving input from a USB keyboard into my Win32 C++ application?
Any help would be greatly appreciated.
Thanks
|
|
|
|
|
If your application must intercept keystrokes intended for another process then you've no alternative to hooks.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi mark8569,
As CPallini hinted you can use a WH_KEYBOARD_LL hook. You may also want to have a look at Raw Input[^] which is also capable of intercepting keyboard input.
Best Wishes,
-David Delaune
|
|
|
|
|
Hello all,
I recently moved from VS6.0 to VS2008.
I am trying to find a way to update an existing CRecordset derived class, from the DB table new structure (I'm using VS2008).
Since I couldn't find how to do this, I also tried adding a new CRecordset derived class, using the MFC class wizard.
Surprisingly, I couldn't find the CRecordset class in the class list to pick it from.
I've tried to find a solution for this over the web, but couldn't find any useful suggestion.
Please help.
Thanks in advance.
Eyal.
|
|
|
|
|
For adding a CRecordset derived in VS2008 you should do as follows.
1. In the Solution Explorer or Class View, right mouse click on the root node and choose Add --> Class.
2. From the Add Class dialog choose "MFC ODBC Consumer" and press Add.
3. Press the "Data Source" button to choose a data source and the required table (just follow the wizard).
4. Press "Finish".
5. Two files will be created CPP and H files.
Enjoy,
Dudi.
|
|
|
|
|
Hi Guys, I want to know the difference between User Mode and Kernel Modes (Drivers).
Can't we create Kernel Mode drivers with latest operating systems?
And what is the risk involved in using Kernel Mode Drivers?
Regards
msr
|
|
|
|
|
In the kernel Mode, all the program can run, it runs on the ring0 and can visit all the I/O port.
In the user Mode. only a part of program can be run. It runs on the ring3. Some operations of the program will be fobidden.
我爸是李刚
|
|
|
|
|
yu-jian wrote: In the kernel Mode, all the program can run, it runs on the ring0 and can visit all the I/O port.
What does all the program can run mean? In kernel mode your code runs at ring 0, so you can use privileged instructions of the processor, but you have too much constraints. For example you can call only a subset of the system API depending on the IRQL your driver is running on.
yu-jian wrote: In the user Mode. only a part of program can be run. It runs on the ring3. Some operations of the program will be fobidden.
What does this sentence means? At ring 3 you cannot use privileged instructions of the processor: if you try to use them an exception is thrown. Said that there are no limits on which parts of your code could be executed or not.
|
|
|
|
|
msr_codeproject wrote: Can't we create Kernel Mode drivers with latest operating systems?
Yes, get a copy of the Windows Driver Developer Kit[^].
msr_codeproject wrote: And what is the risk involved in using Kernel Mode Drivers?
If your driver breaks the rules it breaks the system.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|
|
Hi
I have an application that runs fine in XP, and also in Vista on my laptop. However users are reporting problems in Vista, particularly concerning saving files and this message when they quit the programme:
"This application has requested the Runtime to terminate in an unusual way"
I presume this is something to do with me having installed Visual C++ 2008 on the laptop, so I have certain libraries or files that other users don't.
I know this is a bit vague, but I thought someone might recognise the problem.
Thanks in advance if you can help.
Greg Chapman
|
|
|
|
|
|
I don't know Vista much (stayed away from it) but it could also be access right issues. Like, when you boot your vista you log in with an admin user and have all the rights to write everywhere and anything, but when your users log in as normal users, your progran no longer can read/write to certain parts of the registry, the filesystem and who knows whatnot.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> Leela: Fry, you're wasting your life sitting in front of that TV. You need to get out and see the real world.
Fry: But this is HDTV. It's got better resolution than the real world <
|
|
|
|
|
Thanks for your replies. It would be a shame if I had to include the distributable package - I think it would put me off installing a little shareware app; and most things work OK. I'll try and explore the access rights idea - but it's hard to find bugs when they don't occur on the development machine!
Cheers
Greg
|
|
|
|
|
Instead of linking against the DLL version of the runtime, link the runtime statically. It will make your image larger but remove the need to includes / install the redistributables.
|
|
|
|
|
I finally worked it out. You were right about access priveleges etc. On quitting my app would try and update a data file in the app's own program folder - hence the error (unless the folder's priveleges had been manually changed, or UAC turned off). I turned off UAC within about 5 minutes off getting Vista, so didn't realise what was happening.
Doesn't this make developing software for Vista a lot more complicated? Is Windows 7 the same?
Thanks again
GC
|
|
|
|
|
hello guys...today i was reading somewhere on internet that we can have array of size 0, which actually means an array with no elements. What is the genuine use of it? Can we say that this is another bug which is not handled (just like bounds checking of arrays) in c/c++?
|
|
|
|
|
Allowing an array size of zero is a good thing. The array still exists, even if it is empty. We can pass it, process it and otherwise use it without having to write special code.
Often, database and table queries return zero rows. Since the rows returned can be viewed as an array of rows, the number of rows is the size of the array.
|
|
|
|
|
Jalapeno Bob wrote: Allowing an array size of zero is a good thing.
Here would be a possible initial form of the thing :
template <typename T>
class SimpleArray
{
T* m_pData;
int m_iLength;
public:
SimpleArray() : m_pData(NULL), m_iLength(0) {};
...
};
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
yeah, so ?
Well, you need an empty array to be able to fill it.
Watched code never compiles.
|
|
|
|
|
In my old "C" days I used zero sized arrays as placeholders for dynamic sized structs. Something like this:
<code>typedef struct _VARIABLE_SIZED_STRUCT {
BYTE data[0];
} VARIABLE_SIZED_STRUCT, *PVARIABLE_SIZED_STRUCT;
PVARIABLE_SIZED_STRUCT pDynamic = (PVARIABLE_SIZED_STRUCT)malloc(FIELD_OFFSET(VARIABLE_SIZED_STRUCT,data[iSize]));
The zero sized placeholder is antiquated and no longer needed with the C++ language. In fact I believe support for zero sized array was removed from recent MSVC compilers.
Best Wishes,
-David Delaune
|
|
|
|
|
Visual Studio 2010 will flag an error for int i[0];
You can however create it dynamically - int* i = new i[0];
|
|
|
|
|
As Superman already wrote, declaring an array with zero size is not allowed, at least on Microsoft Visual C++.
Something interesting is that, on versions prior to Visual Studio 2010, which is the first one that implements static_assert , such functionality was realized using the _STATIC_ASSERT Macro[^].
That macro tests at compile time for the given condition and give the Compiler Error C2466[^] if not satisfied. Ops! C2466 means cannot allocate an array of constant size 0.
By going deeper, we can search the macro on the crtdbg.h header:
#define _STATIC_ASSERT(expr) typedef char __static_assert_t[ (expr) ]
Now, let's try to imagine how it works...
|
|
|
|
|
You can in C99 (I think VC++ supports this syntax in structures if you use /Ze but it's not a full C99 flexible array thing) but you can't in C90 or C++. The sort of thing it's useful for in C99 is for arrays with variable sized structures. You can write:
struct foo
{
int number_of_elements_;
int elements_[];
};
and then have the constructor sort out sizing the array. In C90 and C++ you'd have to have one element and manually size everything.
Cheers,
Ash
|
|
|
|
|
Hello everyone.
I am doing a sync program that has a spying function.
The spying function will detect any changes in the Source folder and will sync it with the Destination folder as soon as detects any changes.
My problem is, when a new file is added into the Source folder, the sync function immediately will start copying the new file to the Destination folder. And, if the file is still being used by explorer for writing, the program gives an error. As the file has not been fully written.
How can I make the sync function wait for the explorer, until it finishes copying the file?
modified on Thursday, November 25, 2010 8:01 PM
|
|
|
|