Image

Imagefasgibz wrote in Imageru_cpp

экспорт функций из своей dll

создаю свою ras admin dll по описанию из msdn http://msdn2.microsoft.com/en-gb/library/aa377847.aspx

#include "stdafx.h"
#include "mprapi.h"

typedef struct _PPP_LCP_INFO {
OUT DWORD dwError;
OUT DWORD dwAuthenticationProtocol;
OUT DWORD dwAuthenticationData;
OUT DWORD dwRemoteAuthenticationProtocol;
OUT DWORD dwRemoteAuthenticationData;
OUT DWORD dwTerminateReason;
OUT DWORD dwRemoteTerminateReason;
OUT DWORD dwOptions;
OUT DWORD dwRemoteOptions;
OUT DWORD dwEapTypeId;
OUT DWORD dwRemoteEapTypeId;
} PPP_LCP_INFO;

typedef struct _PPP_CCP_INFO {
OUT DWORD dwError;
OUT DWORD dwCompressionAlgorithm;
OUT DWORD dwOptions;
OUT DWORD dwRemoteCompressionAlgorithm;
OUT DWORD dwRemoteOptions;
} PPP_CCP_INFO;

typedef struct _PPP_IPCP_INFO2 {
DWORD dwError;
WCHAR wszAddress[IPADDRESSLEN + 1];
WCHAR wszRemoteAddress[IPADDRESSLEN + 1];
DWORD dwOptions;
DWORD dwRemoteOptons;
} PPP_IPCP_INFO2;

typedef struct _PPP_INFO_2 {
PPP_NBFCP_INFO nbf;
PPP_IPCP_INFO2 ip;
PPP_IPXCP_INFO ipx;
PPP_ATCP_INFO at;
PPP_CCP_INFO ccp;
PPP_LCP_INFO lcp;
} PPP_INFO_2;

typedef struct _RAS_CONNECTION_2 {
HANDLE hConnection;
WCHAR wszUserName[UNLEN + 1];
ROUTER_INTERFACE_TYPE dwInterfaceType;
GUID guid;
PPP_INFO_2 PppInfo2;
} RAS_CONNECTION_2,
*PRAS_CONNECTION_2;

__declspec(dllexport) DWORD APIENTRY MprAdminInitializeDll(void)
{
return NO_ERROR;
}
__declspec(dllexport) DWORD CALLBACK MprAdminGetIpAddressForUser(WCHAR* lpwszUserName, WCHAR* lpwszPortName, DWORD* lpdwIpAddress, BOOL* bNotifyRelease)
{
bNotifyRelease=FALSE;
return NO_ERROR;
}
__declspec(dllexport) BOOL CALLBACK MprAdminAcceptNewConnection(RAS_CONNECTION_0* pRasConnection0, RAS_CONNECTION_1* pRasConnection1)
{
return TRUE;
}
__declspec(dllexport) BOOL CALLBACK MprAdminAcceptNewConnection2(RAS_CONNECTION_0* pRasConnection0, RAS_CONNECTION_1* pRasConnection1, RAS_CONNECTION_2* pRasConnection2)
{
return TRUE;
}
__declspec(dllexport) BOOL CALLBACK MprAdminAcceptNewLink(RAS_PORT_0* pRasPort0, RAS_PORT_1* pRasPort1)
{
return TRUE;
}
__declspec(dllexport) void CALLBACK MprAdminLinkHangupNotification(RAS_PORT_0* pRasPort0, RAS_PORT_1* pRasPort1)
{
}
__declspec(dllexport) void CALLBACK MprAdminReleaseIpAddress(WCHAR* lpwszUserName, WCHAR* lpwszPortName, DWORD* lpdwIpAddress)
{
}
__declspec(dllexport) void CALLBACK MprAdminConnectionHangupNotification(RAS_CONNECTION_0* pRasConnection0, RAS_CONNECTION_1* pRasConnection1)
{
}
__declspec(dllexport) void CALLBACK MprAdminConnectionHangupNotification2(RAS_CONNECTION_0* pRasConnection0, RAS_CONNECTION_1* pRasConnection1, RAS_CONNECTION_2* pRasConnection2)
{
}
__declspec(dllexport) DWORD APIENTRY MprAdminTerminateDll(void)
{
return NO_ERROR;
}

тем не менее когда стартую ras со своей dll
служба вылетает с ошибкой cannot load third party dll
the specified procedure could not be found

в чем может быть причина