powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF C# + native C/C++ *.dll, Как это реализовать???
4 сообщений из 4, страница 1 из 1
WCF C# + native C/C++ *.dll, Как это реализовать???
    #37777381
MaxMM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо подключить нативную библиотеку x86 С/С++ *.dll к сервису WCF C# 4.0.
Сервис создаю на локальном компьютере. Обращаюсь к сервису по http (метод [WebGet]). Получаю ошибку:


Подскажите, пожалуйста, в чем может быть проблема?
=============================================================================
Работоспособность библиотеки Li.dll проверял в консольном приложении C# - работает.
Windows 7 x86
.NET 4.0
VS 2010
Структура решения сервиса WCF:

C/C++ x86 Li.dll:
Li.h
Код: plaintext
1.
2.
3.
extern "C" {
    __declspec(dllexport) int __cdecl SimulateGameDLL (int a, int b);
}


Li.cpp
Код: plaintext
1.
2.
3.
4.
#include "Li.h"
extern int __cdecl SimulateGameDLL (int num_games, int rand_in) {
	return 121;
} 


C#
WcfServiceLibrary1.IService1
Код: c#
1.
2.
3.
[ServiceContract] public interface IService1{
[OperationContract][WebGet] string GetData();
}


WcfServiceLibrary1.Service1
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class Service1 : IService1{

    public string GetData(){

        ClassLibrary1.Class1 cl = new ClassLibrary1.Class1();
        var rt = cl.M(); 
        return string.Format("Value = : {0}", rt);  
    }
}


ClassLibrary1.Class1
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Class1{

        [DllImport("Li.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
        public static extern int SimulateGameDLL(int a, int b);

        public int M() {

            var r = SimulateGameDLL(10, 20);            
            return r;
        }
    }
...
Рейтинг: 0 / 0
WCF C# + native C/C++ *.dll, Как это реализовать???
    #37778337
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxMM,

там же, написано dllnotfoundexception.
то есть программа не видит твоей dll.
...
Рейтинг: 0 / 0
WCF C# + native C/C++ *.dll, Как это реализовать???
    #37779534
MaxMM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK,

То что программа не видит dll - вопрос спорный. В сообщении об ошибке написано что
"Не удается загрузить dll. Отказано в доступе"
Когда я указываю имя библиотеки dll которой не существует, например Lii.dll(вместо Li.dll), вылетает другое сообщение об ошибке.

"...Не найден указанный модуль"

На сколько я понимаю, нужно как-то разрешить загрузку библиотеки *.dll в IIS.
...
Рейтинг: 0 / 0
WCF C# + native C/C++ *.dll, Как это реализовать???
    #37788674
MaxMM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaxMM,

Решение:
Для локального компьютера необходимо назначить файлу native *.dll - "Li.dll" - полные права.

Панель управления -> Администрирование -> Диспетчер служб IIS -> Выбрать Web Site -> Web Service ->
-> Просмотр содержимого -> Li.dll -> Редактировать разрешения -> Безопасность -> NETWORK SERVICES -> Разрешить для группы все возможные права - Полный доступ, Изменение, Чтение и выполнение, Чтение, Запись, Особые разрешения
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF C# + native C/C++ *.dll, Как это реализовать???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]