|
In previous versions of Visual Studio, the linker an the editbin utility had the ability to convert object files from OMF to COFF format. I can't make it work with the link.exe and editbin.exe versions in VS2005.
Does anybody know if that conversion was intentionally removed in VS2005 or if it's just a bug?
I have a project in which some files are compiled with arity/prolog32 (v.1.1). The output of the prolog compiler is an object file in OMF format. Actually, the compiler itself tries to silently convert it to COFF by calling editbin behind the scenes. But with VS2005 the conversion fails and the object file remains in OMF format. Trying to convert the file by explicitly calling EDITBIN from the command line produces the following output, and the file is not converted:
Microsoft (R) COFF/PE Editor Version 8.00.50727.42<br />
Copyright (C) Microsoft Corporation. All rights reserved.<br />
<br />
prlg_ifce.obj : warning LNK4048: Invalid format file; ignored<br />
<br />
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Hi,
I have a COM DLL, and am trying to access this DLL from a MFC application in VC 6.0. But the linker is throwing the following error:
unresolved external symbol "int __stdcall AfxMessageBox
An eg of the usage of AfxMessageBox in the Application code is as under:
AfxMessageBox("Connection Failure",MB_OK);
Help would be quite Helpful !!!
|
|
|
|
|
|
toxcct wrote: remove the 2nd parameter
Am still getting the same linker error...
|
|
|
|
|
Sounds like your COM DLL is not built to use MFC.
Instead of dragging MFC into your COM DLL, I would just use MessageBox(...) instead.
Peace!
-=- James 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! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
I'm using SQLXMLBulkLoad object to read XML/XSD files and insert data and structure into empty SQL Server database.
SQLXMLBulkLoad::Execute( XMLFile, XSDFile) is executed succesfully, but the database remains empty. No tables are created and no data copied.
SQLXMLBulkLoad.BulkLoad property is TRUE
SQLXMLBulkLoad.SchemaGen property is TRUE
Are there some other properties needed for correct Bulkload, or some SQL Server setting to allow this operation?
thanks.
|
|
|
|
|
I am trying to develop a MFC program with database support using DAO.I am using VC6.0 and access 2003.Yet I got the message that VC6.0 can't detect access 2000 database when using DAO.How can I solve this problem?Thanks!
|
|
|
|
|
Hi dear friends,
I want to add ATL support to MFC DLL,
Can you help me?
|
|
|
|
|
It involves adding a global _Module variable and initializing it properly. If you make a dummy DLL project with the AppWizard, and enable MFC and ATL support, you can see how the ATL part is initialized.
--Mike--
Visual C++ MVP
LINKS~! Ericahist | NEW!! PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
|
|
|
|
|
Hi, Thanks for your reply.
I meant adding ATL support to an MFC extension DLL. You know that in VC++ 6.0 (and also later) you can not add ATL support to MFC extension DLLs but you can add this support to regular DLLs.
Knowing this, can I add ATL support to MFC extension DLLs in the way you mentioned.
|
|
|
|
|
a_kiani wrote: I want to add ATL support to MFC DLL,
Could you tell me which ATL class you intended to use in MFC dll.!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hi Dear Friend,
Thanks for your attention.
I want to add simple ATL object to my MFC DLL,
|
|
|
|
|
Hi,
im using this code to copy some data from a ListCtrl
to clipboard.
void CXYZ::copyToClipBoard()
{
CString strTemp="";
POSITION pos = this->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE("No items were selected!\n");
else
{
while ((pos) && (1))
{
int nItem = this->GetNextSelectedItem(pos);
pEl=Tree.getItem(nItem);
if (pEl->sev == 1)
strTemp+="Summary";
else if (pEl->sev == 2)
strTemp+="Unknown";
}
}
if(0 != OpenClipboard())
{
// clipboard varibale and buffer to hold text
HGLOBAL clipbuffer;
char * buffer;
// empty the clipboard first
EmptyClipboard();
// Allocate enough memory
clipbuffer = GlobalAlloc(GMEM_MOVEABLE, (strTemp.GetLength()+1)*sizeof(TCHAR));
// lock the buffer for entire system
buffer = (char*)GlobalLock(clipbuffer);
// copy the text to buffer
memcpy(buffer, strTemp,strTemp.GetLength()*sizeof(TCHAR));
buffer[strTemp.GetLength()+1] = (TCHAR) 0;
// unlock the buffer for entire system
GlobalUnlock(clipbuffer);
// set the type of the clipboard data
SetClipboardData(CF_TEXT,clipbuffer);
// close the clipboard
CloseClipboard();
}
This is working fine for about 150000 items.
But when i have about 500000 items i see a strange behaviour.
The memory usage is increasing for a short time. After this it drops
back to the value before the copy attemp but the process is stuck
in the while-part of this method.
Are there any limits of a CString i`m not aware of?
Or is there an other way to copy more than 150MB to clipboard?
And as last question what way is the fastes to concatenate many strings?
Are stringstreams better or what other ways are possible?
thx
t2x
|
|
|
|
|
Using CString to cat a large number of string is very slow. Each cat can easily cause a new memory allocation which is bad. stringstream should work just fine unless the allocation system stinks. Even a vector of chars is better since it uses a doubling algorithm.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
I think you are seeing (or going to see) two problems. First, CString is not designed to do what you are trying to do with acceptable performance. Second, putting that much data on the clipboard might not be a good idea.
Using "Delayed rendering" of the clipboard data may help the clipboard performance.
Calculating how much space you will need for the completed string and/or optimizing the data transfer format, and then allocating a single buffer for the data should help performance a bit. For example, if you add up all of the characters required for all of the data, you can then do a single allocation for that size and copy the data into it. That in itself will improve performance over CString .
Peace!
-=- James 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! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
t2x wrote: Or is there an other way to copy more than 150MB to clipboard?
Just a ?, why you want to copy 150 mb data to clipboard.. it will slow down performance of PC!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I'm trying to create a fast running algorithm to calculate combinations.
Think of 3 decks of cards without without the picture cards. This would give a total of 120 cards. Now if you were to choose 14 cards from those 120, how many combinations would there be without repeats and disregarding the order. Or more to the point, how could one generate the code to show all possible combinations?
My initial idea was to create an array of all 120 cards then create 14 nested for loops, create a combination and write it to a file. Then later go through the file erasing all duplicates. But this is hardly efficient least to mention good coding. This method would also take an extremly long time. Most of the time being wasted on creating impossible combinations (more than 4 ones)
I am now tempted to create a function to randomly pick 14 of those cards, and write it to a file. But this is going to give inacurate results. There must be some sort of algorithm which can do this.
|
|
|
|
|
Yeah - I think I had that as a CS class assignment one time... I solved it rather quickly (best solution the instructor ever saw!) like this:
int main( int iArgC, char *paArgV[] )
{
int iaCards[ 120 ];
srand( time( NULL ) );
for( int iCard = 0; iCard < 120; iCard++ )
{
iaCards[ iCard ] = rand( ä.ƒóQÿÿëÏ;ðt’f÷Æ.üu®‹ÎÁ +++ NO CARRIER
-=- James 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! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
That's just cruel
Seriously, when was the last time you saw a "NO CARRIER" error halfway through a transmission?
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
waldermort wrote: This would give a total of 120 cards. Now if you were to choose 14 cards from those 120, how many combinations would there be without repeats and disregarding the order.
120! 6.68950E+198
------------ = ------------ = 6.69414E+17
14!(120-14)! 9.99308E+180
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
Show-off! I had to write all that code to get the answer...!
Peace!
-=- James 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! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
whats the C function from C standart libs to convert from wchar_t string to char string.
Is it just simle to do it this way:
for(i=0; i
|
|
|
|
|
and from char to wchar_t string also?
9ine
|
|
|
|
|
wctomb or mbtowc
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
To my knowledge, there are no "standard C" ways to do that, but there are two functions in the Win32 API that you will want to look at: MultiByteToWideChar(...) and WideCharToMultiByte(...) .
Peace!
-- modified at 9:14 Thursday 16th February, 2006
Whoops - guess I was mistaken given what Alok posted... My knowledge has expanded!
-=- James 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! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|