|
If it's a true fisheye with 180 degree FOV, conversion to rectilinear would result in an infinite image. If you want to convert a segment cropped from the fisheye image, first you need to know the projection used by the lens. Equisolid angle and equidistant projections are the most common. You can get the projection equations from http://www.root.or.jp/fit/pages/gyogan_eng.htm[^] or http://www.lce.hut.fi/~jkannala/Kannala_Brandt_ICPR2004.pdf[^]. Then reverse the fisheye projection and apply the normal perspective projection instead.
|
|
|
|
|
I'm wondering what's the usage of the following "tagHELLODATA". Is it for reference inside structure declaration? Can anybody gives me a example?
Thanks
typedef struct tagHELLODATA
{
UINT iColor ;
COLORREF clrText ;
}
HELLODATA, * PHELLODATA ;
|
|
|
|
|
Hi,
That is nothing but a tag/name of the class.Here
HELLODATA data; //creating object-data of type: struct tagHELLODATA
if we refer the structure via typedef struct pointer:
PHELLODATA ptrToHD; //struct tagHELLODATA* ptrToHD
-Rajan
|
|
|
|
|
That's the actual name of the structure. You can skip that in the declaration, IIRC. One place where you need it is if you need a reference to the struct from within the struct itself (for eg, a Node in a list).
typedef struct tagNode
{
struct tagNode *next;
}Node;
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
AFAIK, the tagHELLODATA is not strictly necessary here. In this case, declaring a variable
HELLODATA foo; has the same effect as declaring it like so:
struct tagHELLODATA foo; . I believe you can dispense with the tagHELLODATA , changing the declaration to
typedef struct
{
UINT iColor;
COLORREF clrText;
}
HELLODATA, * PHELLODATA; should not cause any adverse effects.
Joel Holdsworth
Wanna give me a job this summer?
Check out my online CV and project history[^]
|
|
|
|
|
The best way to explain is by example:
Lets say I want to have a structure called BOB that I want to use in both C and C++.
In C++, I can do the following:
struct BOB { int a };
and then to use BOB I just say:
BOB myVariable;
In C, if I do the following:
struct BOB { int a };
I have to say:
struct BOB myVariable;
So, in order declare a variable in C like you would in C++, people did the following:
typedef struct tagBOB { int a } BOB;
Now in C you can do "BOB myVariable".
Since windows h files are for both C and C++, you still see the "tag" stuff for C which doesn't hurt C++.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Hello,
I writes a MFC application with VS 2003. A part of application uses a MFC-extended DLL.
This DLL was written with VisualStudio 6.x. Now I have a silly problem that when I debug my application (with the debug-version DLL), the debugger fails when I access the the DLL. If I compile the DLL with VS 2003 everything works well.
Does it make a difference with which version of VS the DLL is compiled?
Applies this problem only to Mfc dlls?
many thanks...
|
|
|
|
|
|
Hi all!
I am developing an application using MSMQ and i want to send a recordset object using it. now my problem is how can i fetch all records in an recordset object. I have using ODBC and my database server is Microsoft SQL . Whenever I open recordset, i want that whole recordset will assign to an object.
Is there any way I can ensure that all records from a record set will assign to an object ?
Any help would be greatly appreciated!
Thanks,
Rajan
|
|
|
|
|
A CRecordset object does not contain the record set itself. It simply provides you with methods for accessing it. Use the MoveNext() method to iterate through each record of the set, and add each record to a list/array of some sort.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
hi,
Could someone Please tell me how to retrieve the following information to print in the dialog box.
Ethernet:
NIC Address:
IP Address:
Modems installed:
Browser Information:
Version:
Start page:
Viewing Security:
NetClient:
Network Protocols:
III. DIRECTORIES
Temp Directory:
IV. DISK INFORMATION
Drive C: Fixed Disk
Volume Name:
Volume Serial:
Total Space:
Free Space:
V. DISPLAY
Display Adapter:
Display Resolution:
Display Colors:
thanks
U get wht u Give
|
|
|
|
|
charu123 wrote:
hi,
Could someone Please tell me how to retrieve the following information to print in the dialog box.
III. DIRECTORIES
Windows Directory: [GetWindowsDirectory]
System Directory: [GetSystemDirectory]
Temp Directory: [GetTempPath]
IV. DISK INFORMATION
Drive C: [::GetLogicalDrives]
Fixed Disk [GetDriveType]
Volume Name/Volume Serial: [GetVolumeInformation]
Total Space/Free Space:: [GetDiskFreeSpaceEx]
V. DISPLAY
Display Adapter/Display Resolution/Display Colors: [SystemParametersInfo]
VI. MEMORY
Total Physical RAM/Free Physical RAM/Total Page File
Free Page File/Total Virtual Memory: [GlobalMemoryStatus[Ex]]
I amn't able to find api for rest! may be somebody else with help!
[Vote One Here, Complete my Survey....]
Alok Gupta visit me at http://www.thisisalok.tk
"I Think Believe this Will Help"
|
|
|
|
|
Thanks for the info.
I am having a little probs figuring out how to use SystemParametersInfo.
I also need help with:
DEFAULT PRINTER:
ServerName:
PrinterName:
ShareName:
PortName:
DriverName:
Description:
Location:
Processor:
Processor param:
DataType:
Status:
Current jobs: 0
Current printing speed:
Print to the following port:
thanks
U get wht u Give
|
|
|
|
|
Try this, you should get Devicename, port and the drivername of your default printer
CPrintDialog dlg(FALSE);
if (!dlg.GetDefaults())
AfxMessageBox(_T("You have no default printer!"));
else
{
CString strDescription;
strDescription.Format(_T("Your default printer is %s on %s using %s."),
(LPCTSTR) dlg.GetDeviceName(),
(LPCTSTR) dlg.GetPortName(),
(LPCTSTR) dlg.GetDriverName());
AfxMessageBox(strDescription);
}
P-Man
|
|
|
|
|
Have a look at:
<br />
IPrintCorePS2::GetOptions()<br />
EnumJobs()<br />
GetPrinter()<br />
GetPrinterData()<br />
etc<br />
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I am getting an error sayin
The data area passed to a system call is too small.
theSIZE i have declared is 5000.
please tell m ewhr i am going wrong in this code snippet.
char DevName[100];
sprintf(DevName,"%s",(LPCTSTR)dlg.GetDeviceName());
HANDLE phPrinter=NULL;
DWORD dwBytesNeeded;
PRINTER_INFO_2 *pst;
BYTE pPrinter;
DWORD sizeReq=SIZE;
OpenPrinter(DevName,&phPrinter,NULL);
GetPrinter(phPrinter, 2, &pPrinter, sizeReq, &dwBytesNeeded);
pst=(PRINTER_INFO_2 *)malloc(dwBytesNeeded);
char j[SIZE];
sprintf(j,"%l",pst->AveragePPM);
U get wht u Give
|
|
|
|
|
|
charu123 wrote:
NIC Address:
IP Address:
To get the MAC address, use GetAdaptersInfo() . To get the IP address, use gethostname() followed by gethostbyname() .
charu123 wrote:
Browser Information:
Since more than one browser can be present, this question cannot be answered directly. One approach would be to call FindExecutable() with the name of some .html file. Then query that executable using GetFileVersionInfo() and VerQueryValue() .
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi
I am having some problem...
please see this code and tell me whr I am going wrong.
LPTSTR lptstrFilename;<br />
char buffer[BUF]="C:\\Program Files\\Internet Explorer\\iexplore.exe";<br />
lptstrFilename = (char *) malloc( sizeof(BUF) );<br />
strcpy(lptstrFilename,buffer);<br />
DWORD dwHandle=NULL;<br />
DWORD lpdwHandle= -1;<br />
DWORD dwLen=0;<br />
void *lpData;<br />
<br />
dwLen= GetFileVersionInfoSize(lptstrFilename,&lpdwHandle);<br />
lpData = malloc(dwLen);<br />
DWORD dwError = GetLastError();<br />
BOOL bRet = GetFileVersionInfo(lptstrFilename,NULL,dwLen,&lpData);<br />
PUINT lplpBuffer;<br />
PUINT puLen;<br />
<br />
VerQueryValue(lpData, <br />
TEXT("\\VarFileInfo\\Translation"), <br />
&lpBuffer, <br />
&dwBytes);<br />
I am getting an error when i reach the VerQueryValue.
Can u please point out the mistake.
U get wht u Give
|
|
|
|
|
|
I am not able to implement GetAdaptersInfo becoz it is not recognizing some header files.
Is there any other way i can implement it.
Probably read from some file etc.
Can u tell me how to get CPU speed.
Thanks
U get wht u Give
|
|
|
|
|
charu123 wrote:
I am not able to implement GetAdaptersInfo becoz it is not recognizing some header files.
This makes no sense. Functions do not have the ability or capacity to recognize anything compiler-related. Perhaps you meant that the compiler is unable to locate a particular header file.
charu123 wrote:
Can u tell me how to get CPU speed.
There are several ways of doing this, some better than others.
Here is a Delphi example (it's a trivial exercise to convert to C). You can also look in the registry at HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0. I'ved used the following before:
unsigned __int64 start, stop;
unsigned __int64 nCtr, nFreq, nCtrStop;
QueryPerformanceFrequency((LARGE_INTEGER *) &nFreq);
_asm _emit 0x0F
_asm _emit 0x31
_asm mov DWORD PTR start, eax
_asm mov DWORD PTR [start + 4], edx
QueryPerformanceCounter((LARGE_INTEGER *) &nCtrStop);
nCtrStop += nFreq;
do
{
QueryPerformanceCounter((LARGE_INTEGER *) &nCtr);
} while (nCtr < nCtrStop);
_asm _emit 0x0F
_asm _emit 0x31
_asm mov DWORD PTR stop, eax
_asm mov DWORD PTR [stop + 4], edx
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I am getting an error sayin
The data area passed to a system call is too small.
theSIZE i have declared is 5000.
please tell m ewhr i am going wrong in this code snippet.
char DevName[100];
sprintf(DevName,"%s",(LPCTSTR)dlg.GetDeviceName());
HANDLE phPrinter=NULL;
DWORD dwBytesNeeded;
PRINTER_INFO_2 *pst;
BYTE pPrinter;
DWORD sizeReq=SIZE;
OpenPrinter(DevName,&phPrinter,NULL);
GetPrinter(phPrinter, 2, &pPrinter, sizeReq, &dwBytesNeeded);
pst=(PRINTER_INFO_2 *)malloc(dwBytesNeeded);
char j[SIZE];
sprintf(j,"%l",pst->AveragePPM);
U get wht u Give
|
|
|
|
|
hi david,
I ma getting the following error
" the instruction at a memory location reference memory at <location>. the memory could not be written."
Could u point out where I am going wrong.
<br />
char b[1000],a[1000],file[1000]="trial.html";<br />
char path[1000]="C:\\Documents and Settings\\bhoomika.WIPHP_DOMAIN\\Desktop";<br />
LPTSTR data;<br />
data=(char*)malloc(1000);<br />
VS_FIXEDFILEINFO *pFileInfo;<br />
UINT BufLen;<br />
FindExecutable(file,path,data);<br />
DWORD dwHandle, dwLen;<br />
dwLen = GetFileVersionInfoSize (data, &dwHandle);<br />
LPTSTR lpData;<br />
lpData=(char*)malloc(sizeof(BUF));<br />
if (!GetFileVersionInfo (data, dwHandle, dwLen, lpData)) {<br />
free (lpData);<br />
lpData = NULL;<br />
AfxMessageBox ("VersionInfo: not found\n");<br />
<br />
}<br />
<br />
if (!VerQueryValue(lpData,"\\",(LPVOID*) &pFileInfo,(PUINT) &BufLen)) {<br />
printf ("VersionInfo: not found\n");<br />
}<br />
else <br />
{<br />
sprintf (a,"MajorVersion: %d", HIWORD(pFileInfo->dwProductVersionMS));<br />
m_ctrlBrowser.SetWindowText(a);<br />
sprintf (b,"MinorVersion: %d\n",LOWORD(pFileInfo->wProductVersionMS));<br />
}<br />
<br />
<br />
free(data);<br />
return TRUE; <br />
Thanks For all the help.
U get wht u Give
|
|
|
|
|
charu123 wrote:
lpData=(char*)malloc(sizeof(BUF));
I think this should be lpData=(char*)malloc(dwLen).
charu123 wrote:
sprintf (b,"MinorVersion: %d\n",LOWORD(pFileInfo->wProductVersionMS));
The compiler should have complained about this one as wProductVersionMS is not a valid member name.
Other than that, and the lack of error checking, what you have should work. You do, however, seem to be confused as to when to use MFC and when not to. Unless there is no MFC equivalent for some Win32 function, it really makes no sense to mix the two.
Here is a modified version of your code:
VS_FIXEDFILEINFO *pFileInfo;
LPCTSTR pszFile = "trial.html",
pszPath = "C:\\Documents and Settings\\bhoomika.WIPHP_DOMAIN\\Desktop";
CString strExecutable,
strResult;
DWORD dwHandle,
dwVerSize;
LPBYTE pBuffer;
UINT uBufLen;
FindExecutable(pszFile, pszPath, strExecutable.GetBuffer(_MAX_PATH));
strExecutable.ReleaseBuffer();
dwVerSize = GetFileVersionInfoSize(strExecutable, &dwHandle);
if (dwVerSize > 0)
{
pBuffer = new BYTE[dwVerSize];
if (NULL != pBuffer)
{
if (GetFileVersionInfo(strExecutable, dwHandle, dwVerSize, pBuffer) != FALSE)
{
if (VerQueryValue(pBuffer, "\\", (LPVOID *) &pFileInfo, &uBufLen) != FALSE)
{
strResult.Format("MajorVersion: %u\nMinorVersion: %u",
HIWORD(pFileInfo->dwProductVersionMS),
LOWORD(pFileInfo->dwProductVersionMS));
}
else
strResult.Format("VerQueryValue() failed. Error = %lu", GetLastError());
}
else
strResult.Format("GetFileVersionInfo() failed. Error = %lu", GetLastError());
delete [] pBuffer;
}
}
else
strResult.Format("GetFileVersionInfoSize() failed. Error = %lu", GetLastError());
AfxMessageBox(strResult);
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|