|
I've got an app that I'm trying to create an installation for but am confused with what DLL's to use/register. Does every DLL have to be registered? I mean if I replace a DLL with a newer version does the new one have to be registered and/or do I have to unregister the old one before replacing it? I'm having problems.
My development machine has Win2K on it but if I deliver the Windows 2000 versions of wsock32.dll (winsock) and ws2_32.dll on a Win98 system, either my application or some other Winsock application won't work.
Where do I get dlls that are either a) the latest and greatest for that operating system or b) are 100% compatible for all Win32 operating systems and c) does that even exist?
I know my setup program can be modified to detect OS and I can configure it so that it will install the proper DLLs per operating system but where do I get them? Is it proper procedure to just copy them from a Win98 machine, a Win2000 machine and a WinME machine? And, if I do that am I asking for trouble later on?
Any help, please?
|
|
|
|
|
A trick:
if you see the dll file properties, in the tab version you can see in the item name several items, if in the list of thouse, you see a item named OleSelfRegister, you MUST to register the file, if you don't see that item, you only need to copy the file, without register it...;)
Cheers, and good instalation
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
Thanks. In what application, Explorer?
|
|
|
|
|
winsocks is distributed by MS as a zip-OS dependent package. Can't remember the exact url right now.
Now that XP is out, you should also pay attention to what's known as merge modules (.msm files). Those are packages redistributed by MS (see MSDEV.NET cd), which are part of the final .msi setup, which is supposed to be now the only way to properly install software on XP+ OSes.
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Wow! How's a guy supposed to keep track of all of this? I'll look on Microsoft for that zip file. Thanks.
|
|
|
|
|
Your installation should vary by OS. It should also check if existing DLLs have higher versions and dates and copy your DLL only if your DLL has newer date and higher version. Most DLLs should be backward compatible, i.e., older programs should work. But remember I said "Should be".
Most OS DLLs should be redistributable. If you application has componments that you bought then you need to read up the licence agreements to see if the DLLs that support those components are distributable.
>Where do I get dlls that are either a) the latest and greatest for that operating system or b) are 100% compatible for all Win32 operating systems and c) does that even exist?
If you find the answer to this question, please let me know. But a good place is usually your own machine if you have the latest Service Packs. I am not sure about XP and the rest of the world. Most DLLs work fine with 98, 2000, and NT. Do not know what happens with XP or if XP DLLs are moved to the others.
Here is one of my nightmares that I have yet to investigate. A Windows Media Player Visualization that I created on Win 98 using VC++ 6.0 works on XP, but the same code compiled on 2000 using VS .Net does not work on XP. Go figure.
I know I did not answer your questions...but I got to rant and let of some steam.
|
|
|
|
|
Thanks. I guess getting them off our machines is what we'll do. I was hoping there was one place on Microsoft or a redist directory somewhere to get all of this from.
|
|
|
|
|
If you are working on a real world project, I guess someone in your company can get you what you needs. (of course, you have some form of MS product support to play with, don't you?)
Otherwise, for sharewares or the like, here is a link for the win95 redistribuable[^]. Not needed on Windows98 (already installed IMHO).
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Well, we have/had MSDN till Jan of 02' and since we're not using .Net, I didn't think we should resubscribe since I heard that MSDN is not updating the non-.net portions anymore.
|
|
|
|
|
Chances are, the version compiled with VS.NET uses the MFC7 DLL's. Contrary to what you might think, XP does not come with the .NET framework or the MFC7 DLL's. I believe the XP service pack 1 installs the .NET runtime and the MFC7 DLL's.
Gary R. Wheeler
|
|
|
|
|
I have never made one and dont know what needs to be done. Are there any links or articles that are good for beginners? That would help a lot...
Appreciate your help,
ns
|
|
|
|
|
http://www.codeproject.com/miscctrl/CSplashScreenEx.asp
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
He has a splscreen.vcproj (odd extension) file in the project.But no dsw or dsp ? Whats a .vcproj?
(I want to see how he finds out that the app is done loading....)
Appreciate your help,
ns
|
|
|
|
|
VC++7-VC++6 project converter[^].
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
works great. I have my dsw...
Appreciate your help,
ns
|
|
|
|
|
Theres a splashscreen.show(0 in oninitdialog, but no .hide(). yet it goes away...stepping takes me into CDialog::DoModal whereabout it vanishes.....I am puzzled. My other modal dlgs never disappear by themselves..yet in the code below it looks like it wil disappear by itself:????
int CDialog::DoModal()
{
ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
m_lpDialogTemplate != NULL);
LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
HGLOBAL hDialogTemplate = m_hDialogTemplate;
HINSTANCE hInst = AfxGetResourceHandle();
if (m_lpszTemplateName != NULL)
{
hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
hDialogTemplate = LoadResource(hInst, hResource);
}
if (hDialogTemplate != NULL)
lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);
if (lpDialogTemplate == NULL)
return -1;
HWND hWndParent = PreModal();
AfxUnhookWindowCreate();
BOOL bEnableParent = FALSE;
if (hWndParent != NULL && ::IsWindowEnabled(hWndParent))
{
::EnableWindow(hWndParent, FALSE);
bEnableParent = TRUE;
}
TRY
{
AfxHookWindowCreate(this);
if (CreateDlgIndirect(lpDialogTemplate,
CWnd::FromHandle(hWndParent), hInst))
{
if (m_nFlags & WF_CONTINUEMODAL)
{
DWORD dwFlags = MLF_SHOWONIDLE;
if (GetStyle() & DS_NOIDLEMSG)
dwFlags |= MLF_NOIDLEMSG;
VERIFY(RunModalLoop(dwFlags) == m_nModalResult);
}
if (m_hWnd != NULL)
SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW|
SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE|SWP_NOZORDER);
}
}
CATCH_ALL(e)
{
DELETE_EXCEPTION(e);
m_nModalResult = -1;
}
END_CATCH_ALL
if (bEnableParent)
::EnableWindow(hWndParent, TRUE);
if (hWndParent != NULL && ::GetActiveWindow() == m_hWnd)
::SetActiveWindow(hWndParent);
DestroyWindow();
PostModal();
if (m_lpszTemplateName != NULL || m_hDialogTemplate != NULL)
UnlockResource(hDialogTemplate);
if (m_lpszTemplateName != NULL)
FreeResource(hDialogTemplate);
return m_nModalResult;
}
In this line:
DestroyWindow();<br /> it looks like it goes away by itself (any modal window)...
Appreciate your help,
ns
|
|
|
|
|
MSDN:
-----
CWnd::DestroyWindow
Destroys the Windows window attached to the CWnd object. The DestroyWindow member function sends appropriate messages to the window to deactivate it and remove the input focus. It also destroys the window’s menu, flushes the application queue, destroys outstanding timers, removes Clipboard ownership, and breaks the Clipboard-viewer chain if CWnd is at the top of the viewer chain. It sends WM_DESTROY and WM_NCDESTROY messages to the window. It does not destroy the CWnd object.
....
The DestroyWindow member function also destroys modeless dialog boxes created by CDialog::Create.
....
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
yes, but destroywindow is showing up in the DoModal() which makes me think that the dialog should vanish when DoModal is called, after first showing itself? MAy be I'm hopelessly confused ?(I am , I am )
Appreciate your help,
ns
|
|
|
|
|
The function of DoModal() is to display a window, loop until it wants to go away, and then destroy it. But, you should probably not be calling DoModal() for a splash screen *anyway*, since you're supposed to be doing other things while the splash screen is placating the user. Create() and ShowWindow() would be more likely, i think. The article should demonstrate it though.
Shog9
------
And on the pedestal, these words appear:
"My name is Ozymandias, King of Kings,
Look on my Works, ye Mighty, and despair!"
Nothing beside remains.
|
|
|
|
|
Well, I was stepping through the code of their sample, and it took me into DoModal. However I see they use a CReate so its not modal....Thanks for the response
Appreciate your help,
ns
|
|
|
|
|
You can make the following, Project/Add To Project/Componentes And Controls
Then select Visal C++ Componentes and then Splash screen...
That will add you a Splash Screen component in yout project... It's a good sample to start
Cheers
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
When I try to open the same file 20 times (without closing), I get a runtime error. Is there a way to workaround that? Im working with COM, so is it a COM-specific limitation? Thanks
|
|
|
|
|
Regardless of why the runtime error is occurring, I believe you should rethink what you are doing. I can't think of a single reason to open the same file twenty times. Even if you have 20 threads doing I/O against the file, there's got to be a better approach than letting each thread open the file on its own.
Gary R. Wheeler
|
|
|
|
|
Please help me. This is driving me insane.
In the beginging of my myfile.cpp, I add this:
#include <Afxtempl.h>
Then I declared a global variable:
CArray < unsigned char, unsigned char > g_ubArrayReceived;
later, in a function, I called this:
if ( g_ubArrayReceived.IsEmpty() )
xxxxx;
I tried to compile, but VC++ 6.0 tell me that:
"error C2039: 'IsEmpty' : is not a member of 'CArray<unsigned char,unsigned char>'"
what???? what's wrong with me?
|
|
|
|
|
Cos he is right!
Check CArray::GetSize
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|