The Procedure Entry Point Could Not Be Located In The Dynamic Link Library Advapi32.dll

4 views
Skip to first unread message

Gwenda Gronert

unread,
Aug 3, 2024, 11:25:38 AM8/3/24
to knosawexhai

Metatrader 5 update , the application can't launch with the warning said "The procedure entry point Eventsetinformation could not be located in the dynamic link library ADVAPI32.dll" . I'm using windows 7 64 bit system , I still can use metatrader 5 on build 3661 . What's the point of update if the update break the program for a lot of people ? me windows 7 user , post above me alain verleyen his code broken .

I found something strange in the latest update, now the backtest is slower and the backtest results can only be 32%, even though before I was able to get 100% real tick history. I don't know what was changed, but it seems to concern the history data.

When comparing the appropriate pair of elements having NaN values, the Compare and CompareByDigits methods consider these elements equal, while in case of a usual comparison of floating-point numbers NaN != NaN.

A DLL can optionally specify an entry-point function. If present, the system calls the entry-point function whenever a process or thread loads or unloads the DLL. It can be used to perform simple initialization and cleanup tasks. For example, it can set up thread local storage when a new thread is created, and clean it up when the thread is terminated.

If you are linking your DLL with the C run-time library, it may provide an entry-point function for you, and allow you to provide a separate initialization function. Check the documentation for your run-time library for more information.

If you are providing your own entry-point, see the DllMain function. The name DllMain is a placeholder for a user-defined function. You must specify the actual name you use when you build your DLL. For more information, see the documentation included with your development tools.

The system calls the entry-point function in the context of the process or thread that caused the function to be called. This allows a DLL to use its entry-point function for allocating memory in the virtual address space of the calling process or to open handles accessible to the process. The entry-point function can also allocate memory that is private to a new thread by using thread local storage (TLS). For more information about thread local storage, see Thread Local Storage.

The DLL entry-point function must be declared with the standard-call calling convention. If the DLL entry point is not declared correctly, the DLL is not loaded, and the system displays a message indicating that the DLL entry point must be declared with WINAPI.

The entry-point function should perform only simple initialization tasks. It must not call the LoadLibrary or LoadLibraryEx function (or a function that calls these functions), because this may create dependency loops in the DLL load order. This can result in a DLL being used before the system has executed its initialization code. Similarly, the entry-point function must not call the FreeLibrary function (or a function that calls FreeLibrary) during process termination, because this can result in a DLL being used after the system has executed its termination code.

Because Kernel32.dll is guaranteed to be loaded in the process address space when the entry-point function is called, calling functions in Kernel32.dll does not result in the DLL being used before its initialization code has been executed. Therefore, the entry-point function can create synchronization objects such as critical sections and mutexes, and use TLS, because these functions are located in Kernel32.dll. It is not safe to call the registry functions, for example, because they are located in Advapi32.dll.

Calling other functions may result in problems that are difficult to diagnose. For example, calling User, Shell, and COM functions can cause access violation errors, because some functions in their DLLs call LoadLibrary to load other system components. Conversely, calling those functions during termination can cause access violation errors because the corresponding component may already have been unloaded or uninitialized.

When a DLL entry-point function is called because a process is loading, the function returns TRUE to indicate success. For processes using load-time linking, a return value of FALSE causes the process initialization to fail and the process terminates. For processes using run-time linking, a return value of FALSE causes the LoadLibrary or LoadLibraryEx function to return NULL, indicating failure. (The system immediately calls your entry-point function with DLL_PROCESS_DETACH and unloads the DLL.) The return value of the entry-point function is disregarded when the function is called for any other reason.

After installing Igor Pro 9 on a Windows 7 PC the following error pops up when I try to run the program (32 bit or 64 bit): "The procedure entry point EventSetInformation could not be located in the dynamic link library ADVAPI32.dll.". I have installed and run Igor Pro 9 on other Windows 7 machines without issue. I checked to make sure that the dll file is on the computer. Has anyone else encounter this problem or know what would cause this?

I suggest that you try rebooting your machine. If that doesn't work I would reinstall IP9, though I doubt that will help. If that doesn't work you will probably need to follow one of the many articles of questionable usefulness that one can find if you search for something like "ADVAPI32.dll missing". Or perhaps consult with your IT department if you have one.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages