|
Hi,
I've a global variable char*tptr. The routines for writing and reading are shown below. The problem is that when I want to write some value example tptr= "HELLO"; The response to "HELLO" is "MORNING" however tptr only returns "MORNI" from the ThreadEzusbRead function and then followed by some memory errors messages.
Any suggestions much appreciated
Kind Regards
Caoimh
void ThreadEzusbWrite(HANDLE hDeviceWrite)
{
unsigned long nbyte;
BOOLEAN bResult = FALSE;
BULK_TRANSFER_CONTROL bulkControl;
bulkControl.pipeNum = 0;
DWORD IOCTL = IOCTL_EZUSB_BULK_WRITE;
bResult = DeviceIoControl( hDeviceWrite,
IOCTL,
&bulkControl,
sizeof(BULK_TRANSFER_CONTROL),
tptr,
30,
&nbyte,
NULL );
if(WriteEvent)
SetEvent(WriteEvent);
}
void ThreadEzusbRead(HANDLE hDeviceRead)
{
unsigned long nbyte;
BOOLEAN bResult = FALSE;
BULK_TRANSFER_CONTROL bulkControl;
bulkControl.pipeNum = 2;
DWORD IOCTL = IOCTL_EZUSB_BULK_READ;
bResult = DeviceIoControl( hDeviceRead,
IOCTL,
&bulkControl,
sizeof(BULK_TRANSFER_CONTROL),
tptr,
30,
&nbyte,
NULL );
if(ReadEvent)
SetEvent(ReadEvent);
}
|
|
|
|
|
|
Why are you using a global char*? Global variables are bad because they cause unneeded program interdependency and needless coupling between modules. Consider spawning your thread with a const pointer to the calling thread, and encapsulate Get()/Set() fcns for the member data. And don't use char*! If you're using MFC, use CString, or std::string if you're not. You are truncating your data in the char* b'cos you aren't properly handling the size of the "string".
~Nitron.
ññòòïðïðB A start
|
|
|
|
|
Thanks for replying to the message. Sorted the problem last night. A memory allocation problem. Used malloc to solve the problem.
|
|
|
|
|
How is it possible to include a library to a visual C++ program? The library I want to include is developed in Delphi.
Is there a function for that?
Thank's for advance.
|
|
|
|
|
You can include the additional libs in the link tab in project settings.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
You can use
#pragma comment(lib,"mylib.lib")
in some file like stdafx.cpp (so it's only present once), and that will force it to be pulled in at link time. Note that the compiler won't check that the lib file exists, but the linker will.
Alternatively, add it to the list of libs.
Don't know about Delphi libs, I'm afraid. They might have different calling conventions or anything...
Steve S
|
|
|
|
|
Hi! I want to access to Outlook express indbox folder. But my primary goal is to create new folders and have ability to move emails from one folder to another.
Pain is a weakness living the body
|
|
|
|
|
For a starting point try:
http://oedbx.aroh.de/index.html
--
Joel Lucsy
|
|
|
|
|
thanks Joel. I'll study this tomorow morning. For a moment i can access inbox using Simle Mapi. Not Mapi there a differece if someone want to find something about this in msdn which after reorganization sucks!!!
Pain is a weakness living the body
|
|
|
|
|
Hi all,
I've been assigned the task of writing a filter driver to intercept IO calls to storage devices and selectively allow (or dissallow) them through.
I'm quite new to drivers so I was wondering if anyone could point me to a good starting point.
Thanks for your help,
Mark
|
|
|
|
|
Althought there are a few articles here[^] and here[^], my guess is you might need to refer to a book on writing NT drivers.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
How to Change the Position of the DialogBox?
dadsadasd
|
|
|
|
|
SetWindowPos(...) inthe initdialog will do the trick.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
First let me explain what I'm hoping to do. I want to generate a program that will load a bitmap from a resource for now. I will worry about loading it from a file later. I want 2 copies of the bitmap to be made. one with a red tint and one with a blue tint. and hide or deload the orginal bitmap. So i would now have a red tinted bitmap and a blue tinted bitmap of the orginal image.
With that being said I think I could do the rest. I want to overly the blue image ontop of the red image with it shifted to the right. This will make a 3d image.
In any event with that being said how do you tint a bitmap. Lets say I have IDB_PICTURE as my bitmap. after doing some research on google i'm lead to believe that i would make a pointer to the bitmap and then simply lower its rgb's. That all sounds fine and dandy but how? I mean i know what a pointer is but how do reset the rgbs with it and let it know its a bitmap and such. I hope my question is clear if not i'll do my best to rephrase it.
A link with good commented code would be great or simply an example of workable code here whichever works would be fine. I just thought it would be cool to make a 3d program.
thanks for the help
Win32newb
"Making windows programs worse than they already are"
|
|
|
|
|
win32newb wrote:
I want to overly the blue image ontop of the red image with it shifted to the right. This will make a 3d image.
the bitmaps would have to be transparent other wise the overlaying bitmap will hide the bitmap below spoiling the 3d Effect
you should rethink about using bitmaps (if only outline images are there you might consider using emf files)
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
alright i see your point as far as the tranparent goes but i thought in visual c++ that was the whole point of the transparent feature in extended styles. I figured I would start with bitmaps first just so i familarize myself with the concept. Then move on to something more advanced.
Any help on this matter would be great and thanks
Win32newb
"Making windows programs worse than they already are"
|
|
|
|
|
if you are using MFC and won't mind third party classes to assist you in image manipulation CxImage[^] is the class for you.
otherwise if you prefer to use win32 functions then you will have to use the LoadImage function as it can load an image from a resource or from a file.
After Loading the image on a DC you can call GetDIBits function to retrieve the pointer to the actual rgb Values.
(if you are unsure or find all this too tedious go for a tried and tested class to manipulate Images)
Hope it helps
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
Hi,
I've written a small administration tool that does some processing on removable devices. The problem is I need to lock the volume before processing. I have managed to do this but only if noone is using the volume at the time when I am locking. Can I gain exclusive access over a volume and force other processes to not use it for a while?
Mark
|
|
|
|
|
This is not possible.
The FSCTL_LOCK_VOLUME flag requires that there are no open files on the target device before you lock it. If this is a removable device, you can order the disk management system to dismount and remount the device programmatically, which will cause all access to the device to flush and stop. After the remount, you can open and exclusively lock the device.
The best alternative is to enter a while-loop in your program, that will periodically attempt to lock the volume, and when it succeeds, it will then start the processing.
Using a function to exclusively lock a drive and force all others out instantly is considered very bad behaviour from a software. What if the user is copying e.g. images from a camera device when you force the file copier out from the camera's media and lock it ? This, in the worst case, could cause the copier program to end into an access violation error. Using this when a disk defragmenter or similar is in use might even break the hardware or the disk's index system.
You should redesign your application layout so that it can wait for it's turn in order to start the processing work. This is much more favorable than exclusive locking.
If you MUST get exclusive access, then first open the device handle, then dismount it. After that, call GetLogicalDrives which will attempt to remount the device. Enter a successive loop that tries to open the device and lock it. When done, start your processing.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks... I will try that
This processing will take place at night so no users should be using the PCs in the office at that time. This is just a precautionary measure.
|
|
|
|
|
I'm trying to create a bitmask to say what fields in a database are valid. This would be very much like the LIVF_* items for the LVITEM structure that say what fields in the structure are valid. I'm know pretty much how to setup the bitmask and the flags for it, but I've no idea how I should really use it. Any help is much appreciated. Thanks.
- Aaron
|
|
|
|
|
You just need to use a logical mask, such as 010011. This mask would mean that from an SQL query string, the second, fifth and sixth returned column on each row contain valid values.
There is no actual function which you could use to order a database driver (such as ODBC) to mask certain values. The driver will return all valid values it can extract from the database. It is your job to use e.g. the returned CRecordset-object and mask certain columns from it.
Alternatively, could it be that your application needs redesigning ? After all, if you use an ODBC extension class from here in CodeProject, you can execute an arbitary query into a database and fetch columns by their index or by names. In this case, you wouldn't need a bitmask at all.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Is there any way i can have a modeless form of Messagebox or afxmessagebox?
Thanx.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Unfortunately no, since standard Windows message boxes are modal beasts. But you can craft your own by turning this[^] into a modeless dialog. And when you do, please post the article at CP. Thanks!
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|