Первым в моей профессиональной жизни я должен доставить DLL клиенту, который содержит нашу базовую, общую программу и интерфейс, который позволяет работать так, как это хочет клиент + позволяет клиент для подачи на входы и чтения.Обмен файлами DLL и H на C++ с клиентом
Теперь моя большая проблема заключается в том, что я не могу показать что-либо моему клиенту, что он не обязательно должен знать из-за интеллектуальной собственности. Сюда относятся типы данных, поэтому я не могу даже показать ему подпись какого-либо из наших внутренних методов. Я создал типы данных и структуры, которые имитируют наши собственные внутренние, но которые, например, добровольно опускают ненужные атрибуты/элементы или дают им разные имена, чтобы скрыть намеки на нашу внутреннюю внутреннюю логику. И тогда методы, которые получают данные, отображают наши собственные структуры данных и набирают их. Вы получите картину.
Кроме того, на этот раз с точки зрения чистой архитектуры программного обеспечения я не хочу, чтобы он имел доступ к определенным членам, атрибутам, переменным ... потому что мне не нужно, чтобы он знал, что они существуют или не хотят, чтобы он изменять их, когда он им нравится и как ему нравится. Однако они связаны исключительно с этим интерфейсом и вовсе не являются частью нашего внутреннего программного обеспечения.
То, что у меня есть сейчас, является классом, который служит интерфейсом, который он может создать. Он в основном обеспечивает методы получения вывода, методы для подачи ввода и запуска обновлений обновлений, а также геттеры и сеттеры для других параметров и значений (например, версии программного обеспечения или текущее состояние). Фактические переменные данных для этих параметров и других переменных скрыты в моем файле CPP, который скомпилирован в DLL, поэтому они даже не объявлены как атрибуты класса, которые мы используем в качестве интерфейса в файле H, который я ему даю, даже не как частный, и он не знает о них - у него только есть геттеры и сеттеры.
Какой шаблон дизайна я должен использовать здесь? Могу ли я поместить мои переменные в файл H, который я разделяю с моим клиентом, как атрибуты класса, как частные? Но тогда, сможет ли он изменить их от частного к публичному, а также путем наложения новых методов для класса, доступа к ним и их изменения без компилятора? Могу ли я внести вклад в мой класс и расширить его в своем файле CPP или в другом файле H, к которому у него не будет доступа?
Так много вопросов, поскольку это все новое для меня. Но вы получите общую картину: я хочу поделиться строгой необходимой, максимальной минимальной информацией с моим клиентом в этом файле H, чтобы он мог работать с моей DLL и получать данные. И не более того.
Спасибо заранее, Чарльз
Это не относится к вопросу DLL вообще. –
Прочтите. Таким образом, это в основном опирается на прямое объявление тела реализации, включая переменные, которые я хотел бы скрыть, и чья декларация 1. отложена на более поздний этап процесса компиляции, пока это еще не все еще вызывает ошибку, и 2. в другом файле, который не используется совместно с клиентом. Если у моего клиента тогда есть только H-файл без объявления тела реализации, а моя DLL с объявлением (и определением) его внутри, сможет ли он скомпилироваться? – Charles
@ Moo-Juice Вот что я боюсь. Опять же, и если у кого-то есть лучшее предложение, у моего клиента будет только DLL и H-файл, объявляющий экспортируемый материал, который ему нужен. – Charles