IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] Msado15.dll et MSVCR70.dll introuvables


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut [MFC] Msado15.dll et MSVCR70.dll introuvables
    Bonjour � tous.

    J'ai cr�� un programme de d�ploiement auquel ces deux dll sont empaqu�t�s mais seulement lorsque je vais l'installer chez le client il ne m'inscrit pas les deux dll dans le System.

    A quoi cela est il du?

    Merci d'avance pour vos contributions.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Ton programme les inscrit-il ? avec regsvr32.exe ?

  3. #3
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par nico-pyright(c)
    Ton programme les inscrit-il ? avec regsvr32.exe ?
    Comme ces dll sont empaqu�t�s dans le programme d'installation je pensait que leur inscription se faisait au moment d'installer le produit final.

    Comment faites vous pour installer vos applications MFC chez les client?

    Merci d'avance.

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    moi j'utilise un logiciel tiers, comme Wise
    mais bon, s'il faut lancer un regsvr32, c'est pas la mort non plus
    De toutes facons, je pense que c'est pr�vu, il doit y avoir une option quelque part, mais comme je ne me suis jamais servi de ca, je ne peux pas plus te renseigner, d�sol�

  5. #5
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Merci Nico.

    Quelqu'un peut il me dire comment appeler Regserv32 automatiquement lors de l'installation d'une application faite avec VC++ .NET 2002?

  6. #6
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    effectivement malgr�s son nom Msado15.dll est une ActiveX, donc Regsvr32 s'impose...

  7. #7
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par matazz
    effectivement malgr�s son nom Msado15.dll est une ActiveX, donc Regsvr32 s'impose...
    Existe t il un moyen d'inscrire cette dll dynamiquement au moment de l'installation chez le clien?

    merci

  8. #8
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    tu peut faire un .bat, et le lancer par l'install je pense, mais ton installateur doit pouvoir te le faire(le regsvr32)....

  9. #9
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par matazz
    tu peut faire un .bat, et le lancer par l'install je pense, mais ton installateur doit pouvoir te le faire(le regsvr32)....
    STP peux tu m'expliquer comment fonctionne le .bat et comment l'int�grer au programme d'installation?

    Merci d'avance

  10. #10
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    dans un fichier texte tu met
    et tu renomme le fichier .txt en.bat
    c'est tout.
    Tu utilise quoi comme installateur ?

  11. #11
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Citation Envoy� par matazz
    Tu utilise quoi comme installateur ?
    J'ajoutes juste un projet de d�ploiement � ma solution. Et sur la machine cliente je double clique sur le fichier SETUP et il installe l'application.

    Je ne sais pas si j'ai repondu � la question.

  12. #12
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    ben je connais pas trop .NET, donc je t'avoue que je peut pas trop t'aider la-dessus...

  13. #13
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Ailleurs �a se passerait comment?

  14. #14
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Citation Envoy� par annedjomo
    Citation Envoy� par matazz
    effectivement malgr�s son nom Msado15.dll est une ActiveX, donc Regsvr32 s'impose...
    Existe t il un moyen d'inscrire cette dll dynamiquement au moment de l'installation chez le clien?

    merci
    oui tu peux faire un regsvr32 par programme .

    d'apres un article MSDN:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
     
    #include "stdafx.h"
    #include <ole2.h>
    #include <stdio.h>
     
    #define FAIL_ARGS   1
    #define FAIL_OLE    2
    #define FAIL_LOAD   3
    #define FAIL_ENTRY  4
    #define FAIL_REG    5
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
     
    const TCHAR _szAppName[] = _T("RegSvr32");
    const char _szDllRegSvr[] = "DllRegisterServer";
    const char _szDllUnregSvr[] = "DllUnregisterServer";
    HINSTANCE _hInstance;
     
    BOOL _bSilent;
    BOOL _bConsole;
     
    #define SafePutts(string) ((stdout >= 0) ? _putts(string) : 0)
     
    void
    FormatString2(
    	LPTSTR lpszOut,
    	LPCTSTR lpszFormat,
    	LPCTSTR lpsz1,
    	LPCTSTR lpsz2
    	)
    {
    	LPCTSTR pchSrc = lpszFormat;
    	LPTSTR pchDest = lpszOut;
    	while (*pchSrc != '\0') {
    		if (pchSrc[0] == '%' && (pchSrc[1] >= '1' && pchSrc[1] <= '2')) {
    			lstrcpy(pchDest, (LPCTSTR)(pchSrc[1] == '1' ? lpsz1 : lpsz2));
    			pchDest += lstrlen(pchDest);
    			pchSrc += 2;
    		} else {
    			if (_istlead(*pchSrc))
    				*pchDest++ = *pchSrc++; // copy first of 2 bytes
    			*pchDest++ = *pchSrc++;
    		}
    	}
    	*pchDest = '\0';
    }
     
    #define MAX_STRING 1024
     
    void
    DisplayMessage(
    	UINT ids,
    	LPCTSTR pszArg1 = NULL,
    	LPCTSTR pszArg2 = NULL,
    	BOOL bUsage = FALSE,
    	BOOL bInfo = FALSE
    	)
    {
    	if (_bSilent && !_bConsole)
    		return;
     
    	TCHAR szFmt[MAX_STRING];
    	LoadString(_hInstance, ids, szFmt, MAX_STRING);
     
    	TCHAR szText[MAX_STRING];
    	FormatString2(szText, szFmt, pszArg1, pszArg2);
    	if (bUsage) {
    		int cch = _tcslen(szText);
    		LoadString(_hInstance, IDS_USAGE, szText + cch, MAX_STRING - cch);
    	}
     
    	if (! _bSilent)
    		MessageBox(NULL, szText, _szAppName,
    			MB_TASKMODAL | (bInfo ? MB_ICONINFORMATION : MB_ICONEXCLAMATION));
     
    	if (_bConsole) {
    		TCHAR szMessage[MAX_STRING];
    		FormatString2(szMessage, _T("%1: %2\n"), _szAppName, szText);
    		SafePutts(szMessage);
    	}
    }
     
    inline void
    Usage(
    	UINT ids,
    	LPCTSTR pszArg1 = NULL,
    	LPCTSTR pszArg2 = NULL
    	)
    {
    	DisplayMessage(ids, pszArg1, pszArg2, TRUE);
    }
     
    inline void
    Info(
    	UINT ids,
    	LPCTSTR pszArg1 = NULL,
    	LPCTSTR pszArg2 = NULL
    	)
    {
    	DisplayMessage(ids, pszArg1, pszArg2, FALSE, TRUE);
    }
     
    int _RegSvr32(LPSTR strarg)
    {
    	int iReturn = 0;
    	HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void);
     
    	BOOL bVisualC = FALSE;
    	BOOL bUnregister = FALSE;
    	LPCSTR pszDllEntryPoint = _szDllRegSvr;
    	LPCSTR pszDllName = NULL;
    	LPCSTR pszTok;
    	CStringArray Listarg;
    	_hInstance = AfxGetInstanceHandle();
     
    	// Parse command line arguments.
    	int iTok=0;
    	while(pszTok=strtok((iTok?NULL:strarg)," "))	
    	{
    		iTok++;
    		if ((pszTok[0] == '-') || (pszTok[0] == '/'))
    		{
    			switch (pszTok[1]) 
    			{
    				case 'v':
    				case 'V':
    					bVisualC = TRUE;
    					break;
     
    				case 's':
    				case 'S':
    					_bSilent = TRUE;
    					break;
     
    				case 'u':
    				case 'U':
    					bUnregister = TRUE;
    					pszDllEntryPoint = _szDllUnregSvr;
    					break;
     
    				case 'c':
    				case 'C':
    					_bConsole = TRUE;
    					break;
     
    				default:
    					Usage(IDS_UNRECOGNIZEDFLAG, pszTok);
    					return FAIL_ARGS;
    			}
    		}
    		else
    		{
    			if (pszDllName == NULL)
    			{
    				pszDllName = pszTok;
    				Listarg.Add(pszTok);
    				while((pszTok=strtok(NULL," "))) Listarg.Add(pszTok);
    				break;
    			}
    			else
    			{
    				Usage(IDS_EXTRAARGUMENT, pszTok);
    				return FAIL_ARGS;
    			}
    		}
    	}
     
    	if (pszDllName == NULL)
    	{
    		if (bVisualC)
    			DisplayMessage(IDS_NOPROJECT);
    		else
    			Usage(IDS_NODLLNAME);
     
    		return FAIL_ARGS;
    	}
     
    	// Initialize OLE.
    	if (FAILED(OleInitialize(NULL)))
    	{
    		DisplayMessage(IDS_OLEINITFAILED);
    		return FAIL_OLE;
    	}
     
    	SetErrorMode(SEM_FAILCRITICALERRORS);       // Make sure LoadLib fails.
     
    	for (iTok=0; iTok <Listarg.GetSize(); iTok++)
    	{
    		pszDllName = Listarg.GetAt(iTok);
     
    		// Load the library.
    		HINSTANCE hLib = LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
     
    		if (hLib < (HINSTANCE)HINSTANCE_ERROR)
    		{
    			TCHAR szError[12];
    			wsprintf(szError, _T("0x%08lx"), GetLastError());
    			DisplayMessage(IDS_LOADLIBFAILED, pszDllName, szError);
    			iReturn = FAIL_LOAD;
    			goto CleanupOle;
    		}
     
    		// Find the entry point.
    		(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, pszDllEntryPoint);
     
    		if (lpDllEntryPoint == NULL)
    		{
    			TCHAR szExt[_MAX_EXT];
    			_tsplitpath(pszDllName, NULL, NULL, NULL, szExt);
     
    			if ((_stricmp(szExt, ".dll") != 0) && (_stricmp(szExt, ".ocx") != 0))
    				DisplayMessage(IDS_NOTDLLOROCX, pszDllName, pszDllEntryPoint);
    			else
    				DisplayMessage(IDS_NOENTRYPOINT, pszDllName, pszDllEntryPoint);
     
    			iReturn = FAIL_ENTRY;
    			goto CleanupLibrary;
    		}
     
    		// Call the entry point.
    		if(FAILED((*lpDllEntryPoint)()))
    		{
    			DisplayMessage(IDS_CALLFAILED, pszDllEntryPoint, pszDllName);
    			iReturn = FAIL_REG;
    			goto CleanupLibrary;
    		}
     
    		Info(IDS_CALLSUCCEEDED, pszDllEntryPoint, pszDllName);
     
    CleanupLibrary:
    		FreeLibrary(hLib);
    	}
     
    CleanupOle:
    	OleUninitialize();
    	Listarg.RemoveAll();
    	return iReturn;
    }
    rajouter la chaine:
    IDS_USAGE "\n\nUsage: regsvr32 [/u] [/s] dllname\n/u - Unregister server\n/s - Silent; display no message boxes\n/c - Console output"
    dans la string table.

    fonction � faire dans la classe d'application:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // --------------------------------------------------------------
    int MyWinApp::RegisterActivex(LPCSTR szOcxName,bool bDll/*=false*/)
    {
    	CString str,strRegistre;
    	int ret=0;
     
    	str=GetProfileString("REGISTER", szOcxName);
    	strRegistre.Format("-s %s.%s",szOcxName,(bDll?"dll":"ocx"));
    	if(str.IsEmpty())
    	{
    		ret=_RegSvr32(strRegistre);		
    		WriteProfileString("REGISTER",szOcxName,"1");
    	}	
    	return ret;
    }
    utilisation dans la classe d'application dans InitInstance:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    // ocx
    RegisterActivex("MonOcx");
    // dll
    RegisterActivex("MyDll",true);

  15. #15
    Membre exp�riment�
    Inscrit en
    Mars 2004
    Messages
    425
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par d�faut
    Et si on souhaite automatiser l'inscription des dll se faisant via regasm et gacutil?

    Merci d�j�.

Discussions similaires

  1. [DLL] sous repertoire dll introuvable
    Par adurandet dans le forum C++
    R�ponses: 12
    Dernier message: 17/10/2007, 13h44
  2. [VC2005]dll MFC80u et msvcr80 introuvable
    Par Harry_Tauper dans le forum MFC
    R�ponses: 2
    Dernier message: 19/06/2007, 10h00
  3. VB .Net 2003 - DLL - point d'entr�e introuvable
    Par Malebogia dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 05/09/2006, 18h04
  4. [SWT-WEbstart] .dll et swt.jar introuvable ?
    Par ionix dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 28/04/2006, 15h55
  5. [MFC] msado15.dll
    Par annedjomo dans le forum MFC
    R�ponses: 4
    Dernier message: 24/02/2005, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo