of-course yes. You can invoke a modal dialog from another modal dialog. Coming to your problem there is something wrong with the usage of CFileDialog. can you paste the complete exception stack/message so that we can able find what went wrong.
I took this sample from here[^] hope you are doing the same. if not give a try.
dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(<very large number&>);
dlgFile.GetOFN().nMaxFile = <very large number >;
INT_PTR nResult = dlgFile.DoModal();
Read these lines carefully
The destruction of CFileDialog objects is handled automatically. It is not necessary to call CDialog::EndDialog.
To allow the user to select multiple files, set the OFN_ALLOWMULTISELECT flag before calling DoModal. You need to supply your own filename buffer to accommodate the returned list of multiple filenames. Do this by replacing m_ofn.lpstrFile with a pointer to a buffer you have allocated, after constructing the CFileDialog, but before calling DoModal.
When the user allocates their own buffer to accommodate OFN_ALLOWMULTISELECT, the buffer can't be larger than 2048 or else everything gets corrupted (2048 is the maximum size).
Additionally, you must set m_ofn.nMaxFile with the number of characters in the buffer pointed to by m_ofn.lpstrFile. If you set the maximum number of files to be selected to n, the necessary buffer size is n*(_MAX_PATH + 1) + 1.
You are using the _T() macro in some places to ensure your strings are correctly created as ASCII or Unicode. However, further down you are using the (LPCTSTR) cast. This means that your code should not even compile in Unicode mode. You also failed to tell us what the exception is that you are seeing.
So you think that randomly changing some strings to Unicode will fix the problem? My comment was made in the hope that you would actually think about what you are trying to do and whether your various parameters are correct. Read the documentation[^] and look more closely at the requirements for the different parameters on the CFIleDialog class.
You should also learn the difference between the _T() macro and the L prefix on strings. And finally you need to understand exactly what a cast, such as (LPCTSTR), does and how it affects the way your program runs.
When the user clicks the OK button, they are expecting to be done, not be presented with yet another dialog box. The OK button should not be available to click until all required information has been collected. It sounds like what you need is a Browse button to allow browsing for the file name.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
one paramter as everybody was telling me I have problems wih my parms
So why not take my advice, read the documentation, and fix the incorrect parameters? Unless and until you properly address the things that are obviously incorrect you are not going to make any progress finding the problem.
The program takes the input of an initial keyand an initial
vector, reads the plaintext or ciphertext from a file, conducts the encryption or
decryption, and writes the resulting ciphertext or plaintext into a second file.
test caseisas follows: using a binary initialization vector of10101010, a binary plaintext
of0000000100100011 encrypted with a binarykeyof0111111101 should give a binary
ciphertext of1111010000001011. Decryption should work correspondingly.