|
If you could post the code for DoCommas that'd be of invaluable help.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
hi again
here is the code for DoCommas() but as i said it works in debug build just not release build ... or at least not all release builds on all machines
<br />
bool CBfecApp::DoCommas (_TCHAR *szNumber) <br />
{<br />
int idx;<br />
int nIntegerLen;<br />
int commas,leading;<br />
_TCHAR *szP = NULL;<br />
_TCHAR szDecimals[10];<br />
_TCHAR szInteger[30];<br />
<br />
<br />
if (szNumber[0] == '-')<br />
szNumber++;<br />
<br />
_tcscpy(szInteger,szNumber);<br />
<br />
if ((szP = _tcschr(szInteger,'.')) != NULL){<br />
_tcscpy(szDecimals,szP);<br />
*szP = (int)0;<br />
}<br />
<br />
nIntegerLen = _tcslen(szInteger);<br />
if (nIntegerLen < 4)<br />
return true;<br />
<br />
commas = (nIntegerLen - 1) / 3;<br />
leading = nIntegerLen - (commas * 3);<br />
<br />
szNumber[leading] = (int)0;<br />
<br />
for (idx = 0; idx < commas; idx++){<br />
_tcscat(szNumber,_T(","));<br />
_tcsncat(szNumber,szInteger + leading,3);<br />
leading += 3;<br />
}<br />
<br />
if (szP != NULL)<br />
_tcscat(szNumber,szDecimals);<br />
<br />
return true;<br />
}<br />
---
"every year we invent better idiot proof systems and every year they invent better idiots ... and the linux zealots still aren't being sterilized"
|
|
|
|
|
Uhmmm... Could you make sure that macros UNICODE and _UNICODE are both correctly defined (if doing a Unicode release)?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
they are
---
"every year we invent better idiot proof systems and every year they invent better idiots ... and the linux zealots still aren't being sterilized"
|
|
|
|
|
Try using TCHAR and not _TCHAR
- God bless the World
|
|
|
|
|
I tried this code in a test program, it works just fine in release, debug, and UNICODE.
Tim Smith
Descartes Systems Sciences, Inc.
|
|
|
|
|
is there some wierd setting on machines that causes data to come from sql7 without decimals sometimes?
---
"every year we invent better idiot proof systems and every year they invent better idiots ... and the linux zealots still aren't being sterilized"
|
|
|
|
|
Well if it's possible you might want to run this test: comment the DoCommas line out and check if still some numbers appear without decimals. This may shed some light.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
i tried and it doesnt
---
"every year we invent better idiot proof systems and every year they invent better idiots ... and the linux zealots still aren't being sterilized"
|
|
|
|
|
Hey Lauren, we're not having luck today
It's really beating me. Maybe you can try different tests to isolate the guilty part of the code. Some ideas:- Comment out the first line and insert something fixed like
_tcscpy(szValue,_T("137.3"))
- Maybe the grid (which looks like the Dundas grid, right?) is doing some extra formatting to the text: to rule this out, you can output the results after
DoCommas with, say, a line like MessageBox(NULL,szValue,_T(""),MB_OK) Apart from this, I'm afraid I'm running out of ideas. Good luck with your bug hunting!
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Two things to try:
1. Zero-fill you char arrays before using them. If this fixes it then you're overrunning an array or doing something equally bad with the arrays.
2. Use GetNumberFormat() to insert the commas.
--Mike--
My really out-of-date homepage
He who laughs last, didn't get the punchline and is just laughing so he won't look silly.
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
Howdy,
It's me again, I have never used EnumWindows nor have I used the EnumWindowsProc callback function. I have have been reading the docs on MSDN but I don't fully understand how I implement this. I had posted a question earlier this week regarding WM_GETTEXT. I am using Spy++ to find a window that I want to Get text from(for testing) but it will not pull the info from the window. I thought that if I could use the enum functions to pull the actual name of the window and store that into hWnd I could use WM_GETTEXT the correct way.
Does anyone have a sample of code where they enum through windows until they get the window they want?
Thanks,
Rob
|
|
|
|
|
Pseudocode follows:
STATIC BOOL CALLBACK MyEnumWindowsProc(
HWND hwnd,
LPARAM lparam)
{
if(ThisIsTheWindowImLookingFor(hwnd)){
return FALSE;
}
else return TRUE;
}
...
EnumWindows(MyEnumWindowsProc,0);
Hope it helps.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Your idea is similar, just use FindWindow or else
BOOL CMyDialog::FindMySpecificWindow()
{
return ::EnumWindows(gfnEnumWindowsProc, (LPARAM)this);
}
bool CMyDialog::CheckWindow(HWND hWnd)
{
}
BOOL CALLBACK gfnEnumWindowsProc(HWND hWnd, LPARAM lParam)
{
CMyDialog* pThis = reinterpret_cast<CMyDialog*>( lParam );
if (pThis->CheckWindow(hWnd))
{
return TRUE;
}
return FALSE;
}
- God bless the World
|
|
|
|
|
I use this function to enum current dialog, i'm looking for a way to
look for a handle given in CString style.
I need to convert string to HWND bbut dont now how.
any ideas ?
anyway here's your enum sample.
BOOL CALLBACK EnumChildProc(HWND hWndParent,LPARAM lParam)
{
CString str = "";
char cCaption[1000];
char cClassName[1000];
int iCaptionMaxLength = 1000;
int iClassMaxLenght = 1000;
UINT nCtrlId = GetDlgCtrlID(hWndParent);
::GetClassName(hWndParent,cClassName,iClassMaxLenght);
::GetWindowText(hWndParent,cCaption,iCaptionMaxLength);
str.Format("%s,%s,%d,%d",cClassName,cCaption,nCtrlId,hWndParent);
HWND hDlg = GetParent(hWndParent);
SendMessage(GetDlgItem(hDlg,IDC_COMBO_CHILD),CB_ADDSTRING,0,(LPARAM)(LPCTSTR)str);
return TRUE;
}
void PP_HANDLE::OnButton6()
{
m_child.ResetContent();// combobox
HWND hWndParent = GetSafeHwnd();
EnumChildWindows(m_hWnd,EnumChildProc,0);
// Count handles and show it above the ComboBox
int iCount = m_child.GetCount();
char convert[8];
itoa(iCount,convert,10);
CString strCount;
strCount += "Found ";
strCount += convert;
strCount += " handle's.";
m_stcChild.SetWindowText(strCount);
// Set Current Selection
m_child.SetCurSel(0);
}
Bug Alert
|
|
|
|
|
Hi,
Does anyone knows why I get this stupid error when trying to compile this source code http://www.codeproject.com/dialog/selectcomputerdialog.asp
with Visual C++ 6.0 it compiles without problems, but with Visual Studio .net (release candidate) I get this error...
e:\VSNet\Vc7\include\xutility(398) : error C2440: 'return' : cannot convert from 'NETRESOURCE *' to 'std::vector<_Ty,_Ax>::_Tptr '
with
[
_Ty=CSelectComputerNetwork::CNETRESOURCE,
_Ax=std::allocator<cselectcomputernetwork::cnetresource>
]
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
e:\VSNet\Vc7\include\xutility(397) : while compiling class-template member function 'std::vector<_Ty,_Ax>::_Tptr *std::_Ptrit<_Ty,_Diff,_Pointer,_Reference,_Pointer2,_Reference2>::operator ->(void) const'
with
[
_Ty=CSelectComputerNetwork::CNETRESOURCE,
_Ax=std::allocator<cselectcomputernetwork::cnetresource>,
_Diff=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::difference_type,
_Pointer=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::_Tptr,
_Reference=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::reference,
_Pointer2=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::_Tptr,
_Reference2=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::reference
]
e:\VSNet\Vc7\include\vector(372) : see reference to class template instantiation 'std::_Ptrit<_Ty,_Diff,_Pointer,_Reference,_Pointer2,_Reference2>' being compiled
with
[
_Ty=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::value_type,
_Diff=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::difference_type,
_Pointer=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::_Tptr,
_Reference=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::reference,
_Pointer2=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::_Tptr,
_Reference2=std::vector<cselectcomputernetwork::cnetresource,std::allocator<cselectcomputernetwork::cnetresource>>::reference
]
f:\axaxax\SelectComputerNetwork.cpp(26) : see reference to class template instantiation 'std::vector<_Ty,_Ax>' being compiled
with
[
_Ty=CSelectComputerNetwork::CNETRESOURCE,
_Ax=std::allocator<cselectcomputernetwork::cnetresource>
]
Thanks in advance !
|
|
|
|
|
I had a similar problem, and it turned out that the standard library shipped with VC6 is not in accordance to ISO C++. They fixed it in VC 7.0, and now some VC6 code cannot be built with VC7.
After all, we asked for better standard conformance, didn't we?
I vote pro drink
|
|
|
|
|
Thanks, I knew this.
I fixed the other 200 errors from my sources..., but I'm not an STL professional and I cannot fix this error.
any help would be appreciated...
|
|
|
|
|
(ooop. Did not catch the other Reply before I wrote mine...)
Mario M. wrote:
but I'm not an STL professional and I cannot fix this error. any help would be appreciated..
A Code sample would be a good start. Include the def. of the collection in use.
Peace!
-=- James.
|
|
|
|
|
I have other source codes which uses vector and compiles fine, I think there is something which was changed by MS in this new VC++ release...
|
|
|
|
|
Mario M. wrote:
I have other source codes which uses vector and compiles fine, I think there is something which was changed by MS in this new VC++ release...
I have seen the same thing happen when people moved off of VC++ 6.0's STL code to Dinkumware's STL or STLPort. The reason I suggested is still a possibility. So again, can we get a code snippet (not a code archive) that shows the code around, and including the problem (include things like variable declarations, STL typedefs, etc.)
Peace!
-=- James.
|
|
|
|
|
Mario M. wrote:
cannot convert from 'NETRESOURCE *' to 'std::vector<_Ty,_Ax>::_Tptr
Misuse of STL?
Peace!
-=- James.
|
|
|
|
|
My first guess is someone tried to return an iterator from a function that wants to return a pointer, which VC6 probably would be more likely to let you get away with.
As has been said, it is kind of pointless asking these questions if you're not going to post some code.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Hi,
You can find the complete source code project here http://www.codeproject.com/dialog/selectcomputerdialog.asp
Mario
|
|
|
|
|
I'm not going to reboot into W2000, run .Net ( which I still don't know my way around ), reboot again, redial the internet, when you can just post the offending line of source yourself.
To be honest, if it wasn't that much hassle, I would do it gladly, although I still think you should have posted the source that is crashing, but to test under .Net is simply too much hassle for me.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|