|
Since I am too new to window visualC++, I am not quite following your flow here. Can you give me code example that I can compile and run in visualc++ to load an grayscale image and display it on window frame?
Thanks.
|
|
|
|
|
Try searching for bitmaps on codeproject.
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
of course you can use of SetPixelRGB with two loops for height and width but its not good idea better use of BitBlt and see last parameter of BitBlt on the MSDN
|
|
|
|
|
I have written software that talks to various GPIB instruments. Since most of the instruments are Agilent (old HP), I am using their instrument drivers and everything is working just fine.
My question is this..... Is there some some software out there that I can use to scan the GPIB buss to see what instruments are actually connected or not? Maybe even something that I can modify to fit my specific needs????
Thanks in advance
Pierre
|
|
|
|
|
Hello,
Just try: NI Measurement & Automation Explorer->Devices and Interfaces->GPIB0. Now right click and choose 'Scan for Instruments' menu.
Regards,
|
|
|
|
|
Thank you very much....
But, I was looking for something that I can write into my own code
|
|
|
|
|
Does anyone know of a way to display file sizes larger than 2GB as a string?
I need to display the disk space remaining, but ULARGE_INTEGER, ULONGLONG,__int64 don't have a / operator, so "X / 1GB" won't comPile
Want to show results as: "2.65GB"
Thanks!
-- modified at 15:02 Wednesday 4th April, 2007
|
|
|
|
|
Wes Jones wrote: but ULARGE_INTEGER, ULONGLONG,__int64 don't have a / operator
On what compiler?
This works for me...
__int64 llGigaBytes = 1073741824LL * 4LL;
llGigaBytes = llGigaBytes / 1073741824LL;
Here's how I display memory in my app "About..." dialogs:
double GigaBytes = (double)MemoryStatEx.ullTotalPhys / (double)1073741824.00;
_stprintf(szOutText,TEXT("%.2f GB (%I64d Bytes)"), GigaBytes, MemoryStatEx.ullTotalPhys);
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Thanks for the reply, & Sorry I forgot to mention it already, I'm using VC6.0
The line:
double GigaBytes = (double)pMyULARGE->QuadPart / (double)1073741824.00
results in compiler error:
conversion from unsigned __int64 to double not implemented, use signed __int64
I changed my mind & I figured that my app will probably never have worry about running into the signed/unsigned boundary on a 64bit number when displaying file sizes or disk space, so I just cast the ULARGE_INTEGER::QuadPart to LONGLONG & it now works.
In case somebody else is looking for this, I'll post my down & dirty function:
CString FormatSize(PULARGE_INTEGER pul)
{
ASSERT( pul );
const ULONG n1MB = 1024 * 1024;
const ULONG n1GB = n1MB * 1024;
CString str;
if( pul->QuadPart == 0 )
str = _T("0 KB");
else
if( pul->QuadPart < (n1MB) )
str.Format(_T("%.2lf KB"), pul->LowPart / 1024.0);
else
if( pul->QuadPart < n1GB )
str.Format(_T("%.2lf MB"),
((double) ((LONGLONG)pul->QuadPart) / ((double n1MB) ));
else
str.Format(_T("%.2lf GB"),
((double) ((LONGLONG) pul->QuadPart) / ((double)n1GB)));
return str;
}
Thanks!
|
|
|
|
|
Wes Jones wrote: ...so "X / 1GB" won't comfile
What "comfiler" error do you get?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
You use VC6 right? Is __int64 not a built-in type on that compiler?
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Nothing special needs to be done in order to use it, if that's what you are asking.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Then do you know why the code I posted won't compile (according to the OP)?
I'm on VS2003.
ACK I meant "comfile"...
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Because he did not heed the compiler:
double GigaBytes = (double) ((__int64) MemoryStatEx.ullTotalPhys) / 1073741824.00;
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
That's what I figured. Just wanted to know for future reference.
Thanks man!
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Man, sometimes I wonder about the people here...
Have you looked into StrFormatByteSize64(...) ?
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
StrFormatByteSize64 isn't defined in the SDK on my machine for one reason or another.
Thanks for the pointer tho!
|
|
|
|
|
Your SDK and/or your MSDN Library is severely out of date - this function is available for use with VC++ 6.0, so even the last version of MSDN Library that integrates with it (which is a few years old) has it.
Note that this function became available with IE 5.0, so you need to have the _WIN32_IE value #define d to 0x0500 or greater for it to become visible. Lookup that identifier/macro if you do not know how to set it correctly.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
James R. Twine wrote: Man, sometimes I wonder about the people here...
Yeah whatever. So I'm the last one that hasn't memorized all the APIs.
Thanks for that. I know I'll forget it later but I'll remember its existence!
Tidbits like that are the only reason I'm here
Peace!
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
I have having a bit of trouble, i need to write a program that converts fahrenheit to celsius (i can do the function for this part) but it needs to start with a loop that first prompts the user to "Enter Temperature:" and then stores the value entered into the array which is supposed to be no more than 50. I am having issues with how to input data into the array starting at 0 and keep going up 1 (all I can do is input data directly to myarray[50], but I want the user to input data and it be entered into the array like
enter data one > put in array[0]
enter data 2 > put in array[1]
The program also has to ask the user if they want to keep entering data by pressing 1, or stop by pressing 0. The program then has to display how many arrays there are of temperatures (not the value of them, just how many there are). Please help!! This is what I have so far, any help greatly appreciated.
// Computer Lab test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
// call this function to convert celsius to fahrenheit (function name is convert)
double
convert(double celsius){
double fahrenheit = ((9.0/5.0) * celsius) + 32;
return fahrenheit;
};
int _tmain(int argc, _TCHAR* argv[])
{
double myarray[50];
int flag;
flag =1;
while (flag==1)
{
// loop
cout << "Enter Temperature Reading:";
cin >>myarray[50]
;cout << " Enter 1 to input more values, 0 to stop";
cin >>flag;
}
return 0;
}
|
|
|
|
|
You are off to a good start. I see what you need, but there is a practice around here not to do homework for students.
So you tell me what it does so far, and more importantly what still needs to be done.
|
|
|
|
|
No problem, I understand and I hope I can learn through my errors. So far my program I think stores a temporary function at the start that converts any value of number entered into a double fahrenheit and returns it to another double celsius.
I stored that there just for formula's sake, and haven't implemented it or really know how to use it yet.
Then i think in this part I have correctly made an array of 50 doubles called myarray. Then i have made an int value flag that is in place of if the user puts a 1 or 0 to continue/stop the program. I want to be able to make an array that is assumed to be less than 50 values, and then the user to keep entering values until done, but I think I have it setup wrong is it just storing the values inputted into myarray[50] only? Do I have to seperatly do myarray[0], myarray[1], etc each time or is there some other loop i can make that can tell the program to keep entering values starting from [0] until when the user wants to stop. Then it should print out how many arrays there are rather than values in them. I just can't figure out how to stop the array and have the values only how many the user inputed, not all 50. Any help greatly appreciated thanks.
// Computer Lab test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
using namespace std;
// call this function to convert celsius to fahrenheit (function name is convert)
double
convert(double celsius){
double fahrenheit = ((9.0/5.0) * celsius) + 32;
return fahrenheit;
};
int _tmain(int argc, _TCHAR* argv[])
{
double myarray[50];
int flag;
flag =1;
while (flag==1)
{
// loop
cout << "Enter Temperature Reading:";
cin >>myarray[50]
;cout << " Enter 1 to input more values, 0 to stop";
cin >>flag;
}
return 0;
}
|
|
|
|
|
planetx22 wrote: cin >>myarray[50]
You're going to the same spot each time. Use a variable here.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
if i make another variable, say i.. and define it like
int i
i=0
(not sure if this is right)
for i=0, i<50, i++
{
// cout "Enter Temperatures";
cin >> myarray[i]
does that work better?
|
|
|
|
|
planetx22 wrote: does that work better?
Probably, but you should surround your code snippet with <pre> tags and replace angle brackets with their non-translated version (see the buttons above the smileys).
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|