|
I have created a SDI application with a Form view. In the form view ihave inserted a property sheet like this...
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_PropSheet.AddPage(&m_Page1);
m_PropSheet.AddPage(&m_Page2);
m_PropSheet.Create(this, WS_CHILD | WS_VISIBLE, 0);
m_PropSheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);
m_PropSheet.ModifyStyle( 0, WS_TABSTOP );
m_bViewInitiated = true;
}
I wanted the property sheet to span the whole area of the form view, so i have written few line for that as...
void CMyFormView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
if(m_bViewInitiated)
{
m_PropSheet.SetWindowPos((CWnd*)this, 0, 0, cx, cy,SWP_NOZORDER | SWP_NOACTIVATE );
}
}
But the property sheet is not behaving as i expected. Its size remains same as the property pages sizes given at the creation time.
Can you help me with this...
Thank you
Tritva
modified on Monday, December 15, 2008 5:33 AM
|
|
|
|
|
Hi,
I am writing an utility dll like dependency walker. I have no idea how to get dependent dll. Any idea about this.
Thanks
|
|
|
|
|
manish rastogi wrote: I am writing an utility dll like dependency walker. I have no idea how to get dependent dll.
It looks like a good kick off!
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Have a look at Process Viewer[^]. It contains almost everything you want.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
You can find out what DLL's are implicitly linked to the DLL or EXE by reading the PE import table.
Thanks & Regards,
K. Sushilkumar.
|
|
|
|
|
Hi All
I am useing VISTA and Marking try to set required Privileges Using an Application Manifest.I am useing Manifestthis.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86" name="AdminApp" type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
<ms_asmv2:security>
<ms_asmv2:requestedPrivileges>
<ms_asmv2:requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</ms_asmv2:requestedPrivileges>
</ms_asmv2:security>
</ms_asmv2:trustInfo>
</assembly>
I add this file in debug folder with the same name of exe.But it's not effect on application.So plz help me how i add this Manifest in application.
|
|
|
|
|
What version of visual studio are you using?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
|
|
|
What about documentation [^]?
BTW: you possibly need conversion to wchar_t * (not to char * ).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi, thanks for replying
I've looked through that before, but it doesn't seem to touch on much about my case though. Yeah, wchar_t* seems more convenient, but I'm actually linking these to other DLL files, and the only input type to those is const char*, this I can't change. You have any idea about this conversion code?
|
|
|
|
|
rukawa84 wrote: wchar_t* seems more convenient, but I'm actually linking these to other DLL files, and the only input type to those is const char*, this I can't change. You have any idea about this conversion code?
If the DLL 's functions accept only ASCII strings you're lost: how can you pass Chinese characters?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hmm, sorry I'm not too good in this area. You mean const char* type can only store ASCII? I've tried like declaring const char* variables, initialised them to some chinese words and sent them in and it works fine. I'm not sure how the other DLL works as it's not created by me, but if I find a way to convert the jstring input to char*, I'm sure it'll work out.
|
|
|
|
|
This page [^] has some examples.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thanks for the link, I'll take a look and try again.
|
|
|
|
|
Hi all,
I need a help relatd to removing the part of string
std::string bDesc ="hi how(Temp) are(Temp) you.i am(Temp) Great"
int p=bDesc.find("(",0);
int j=bDesc.find(")",0);
if(p>0 && j>0)
{
bDesc.erase(p,j);
}
from above string i want to remove (Temp) but i am able to remove only once .. do i need to loop through each character.....
can some body help me...
vikas da
|
|
|
|
|
You missed loop.
Regards,
Paresh.
|
|
|
|
|
I know what i want here ...do i need to loops through each character....
or any other efficient and faster way exists...
vikas da
|
|
|
|
|
Is it possible to use MFC? In that case, you can use CString::Replace()[^] and get them replaced in one function call.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Jijo raj wrote: Is it possible to use MFC?
Possible but not advisable (MFC is deprecated ).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
std::string bDesc ="hi how(Temp) are(Temp) you.i am(Temp) Great";
std::string bToken = "(Temp)";
size_t len = bToken.length();
size_t pos = 0;
while (( pos = bDesc.find(bToken,pos)) != std::string::npos)
{
bDesc.erase(pos,len);
}
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thanks everybody ...
i have Implimented ..Pallini code... its working good for me..
earlier i looped through each character of the string thats was tough
Token concept is good..
Thank Pallini
vikas da
|
|
|
|
|
when you have a method prototype as such:
<code>
void setCacheBlocks(vector<cacheblock> const &value);
</cacheblock></code>
and an implementation as such:
<code>
void Simulator::setCacheBlocks(vector<cacheblock> const & value)
{
m_CacheBlock = value;
}
</cacheblock></code>
And when you run the code, the size of items in the vector is correct, but the actual contents of each object contained by the vector magically disappears?
here's what's actually happening (keep in mind this is a mutation of several generations)
<code>
void Simulator::Simulate()
{
Splash();
getUserSettings();
cout.clear();
cout << "Reading trace file..." << endl;
GetData();
sleep(2);
cout << "\nData read.\nStarting Simulation..." << endl;
sleep(1);
// simulation start
//create the data blocks and the cache sets
//create the Cache Blocks
CreateCacheBlocks();
//create the Cache Sets
CreateCacheSets();
}
void Simulator::CreateCacheBlocks()
{
uint numBlocks = getSettings().getCacheSize()/getSettings().getBlocksSize();
uint maxOffset = getSettings().getOffsetParity();
uint bTag = getSettings().getTagParity();
uint bIndex = getSettings().getIndexParity();
bool isValid = false;
char* bData = new char[maxOffset - 1]; //just to make it 0 based
for(int i = 0; i < maxOffset; i++)
{
bData[i] = NULL;
}
vector<cacheblock> v;
CacheBlock cb;
cb.Initialize(maxOffset,bTag,bIndex,isValid,bData);
cb.setSettings(m_Settings);
//initialize each cache block to an initial state
for(uint i = 0; i < numBlocks; i++)
{
cb.setBlockNumber(i);
cb.setBlockAddress(cb.CalculateBlockAddress(i));
v.push_back(cb);
}
//TODO: fix this ASAP
//setCacheBlocks(v);
m_CacheBlock = v;
}
void Simulator::CreateCacheSets()
{
uint numBlocks = getSettings().getCacheSize()/getSettings().getBlocksSize();
uint numSets = numBlocks/getSettings().getCacheAssociativity();
uint numBlocksPerSet = numBlocks / numSets;
CacheSet cs;
cs.setSettings(getSettings());
vector<cacheset> v;
//create the correct number of sets and assign their set indexes
for(uint i = 0; i < numSets; i++)
{
cs.setSetIndex(i);
v.push_back(cs);
}
int k = v.size();
CacheBlock cb;
//assign each cache block to its set
uint setIx = 0;
for(uint i = 0; i < numBlocks; i++)
{
setIx = getCacheBlocks()[i].getBlockAddress() << getSettings().getTagParity();
setIx >>= getSettings().getTagParity();
//cb = getCacheBlocks()[i];
cb = m_CacheBlock[i]; //this statement should be exactly like the preceding one in worth
v[setIx].getCacheBlocks().push_back(cb);
}
setCacheSet(v);
}
</cacheset></cacheblock></code>
If you look to the method Simulate, everything works fine, including CreateCacheBlocks(), but things go belly up in CreateCacheSets().
Yes, I know I shouldn't be using getXX()/setXX() but this is the second time I've had to deal with this Prof and he's old and really old school and doesn't want to get with the times of using overloaded methods.
Don't forget to vote if the response was helpful
Sig history
"dad" Ishmail-Samuel Mustafa
Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation
"There is no wealth like knowledge, no poverty like ignorance" Ali Ibn Abi Talib
|
|
|
|