Elgin76 Ответов: 1

Как получить доступ к классам MFC в библиотеке DLL CLR с помощью C#?


Я пишу приложение с использованием C# и XAML, которое нуждается в доступе к функциям FTP. Большинство, но не все, предоставляются FtpWebRequestMethods.Класс Ftp. Чего не хватает, так это возможности выполнять команды на удаленном сервере.

Эта функция доступна в MFC с помощью класса CFtpConnection.

Я получаю параметры в Visual Studio для создания библиотеки DLL MFC или библиотеки DLL CLR (Common Language Runtime), но не вижу, как я могу объединить их. Мне нужно, чтобы это была CLR, я считаю, так как приложение написано на C#.

Можно ли этого достичь? Если да, то как?

Что я уже пробовал:

Я думаю, что решение состоит в том, чтобы использовать опцию DLL CLR, но я не могу получить код для компиляции, когда я добавляю оператор CFtpConnection и добавляю заголовок <afxinet.h> Include необходимый.

KarstenK

Совет от опытного программиста: избегайте MFC и используйте C#, когда это возможно. MFC-это старая и не очень ухоженная библиотека классов, которая нуждается в большом уходе, чтобы излечить свои проблемы.

Elgin76

Я согласен с настроением избегать MFC, но мне нужна функция, которая была там в MFC, которую Microsoft не предоставила в C#, насколько я могу судить.

Richard Deeming

Попробуйте использовать FTP-библиотеку .NET, например FluentFTP[^].

Elgin76

FluentFTP выглядел хорошо, но только для CHMOD. Нам также нужны другие команды для запуска; в том числе некоторые из них, где мы передаем выходные данные в файл, а затем используем FTP для чтения этого файла обратно в приложение.

1 Ответов

Рейтинг:
2

#realJSOP

Нет необходимости использовать MFC из C#. Вот ссылка, которая описывает объект FtpWebRequest.

MSDN Docs для FtpWebRequest
[^]

Кроме того, существует множество классов FTP C#, многие из которых размещены в виде статей прямо здесь, на CodeProject.

РЕДАКТИРОВАТЬ=================================

Посмотрите на этот вопрос/ответ. Это может помочь.

использование библиотеки DLL MFC C в C#[^]


Elgin76

Насколько я вижу, у этого нет средств, с помощью которых я могу выполнить команду на FTP-сервере, как только я загрузил на него файл. Приложение имеет параметры, которые позволяют отправителю указать параметры для команды chmod, которая должна быть выполнена в загруженном файле.

#realJSOP

Для этого вам нужно написать код или найти класс, написанный вокруг объекта FtpWebRequest. Я сказал об этом в своем ответе.

#realJSOP

Я обновил свой ответ ссылкой на другой ответ CP.

Elgin76

Большое спасибо, Джон. Я посмотрю на это.