DLL-библиотека для вывода данных короткого файла в NTFS
Работаю в Visual Studio 2010. Язык: С++
Не очень понятно, что за функции в .dll? Если .exe и считывает файл, и показывает содержимое в listbox.
Значит так, во-первых стоит понять, что нету никакой разницы между .exe и .dll - и то, и то выполняют написанный тобой код. Разница только в расширении файла и виде точки входа: WinMain в .exe, и DllMain в .dll (аргументы см. в MSDN). Для отладки, например, т.к. у тебя уже есть .exe, который экспортирует функции .dll, можно поступить довольно просто:
1. вот у тебя в Solution есть эти два проекта;
2. первый - .exe, он только подгружает твою .dll, и вызывает какую-нибудь функцию:
2.1. Динамически через LoadLibrary.
2.2. Статически через зависимости проектов (Project Dependencies).
3. второй - .dll, в которой ты пишешь всё, что по существу надо - открытие файла и/или отображение его;
4. придумываешь, откуда вызывать этот код - или из экспортируемой функции, или для отладки сразу в DllMain (так даже не надо в .exe вызывать твои эксп.функции).
5. .dll пр.кнопкой мыши, = Startup Project, F5, выбираешь свой .exe в ответ на вопрос "какой файл запустить", и всё потенциально работает и привычно.
4. придумываешь, откуда вызывать этот код - или из экспортируемой функции, или для отладки сразу в DllMain (так даже не надо в .exe вызывать твои эксп.функции).
5. .dll пр.кнопкой мыши, = Startup Project, F5, выбираешь свой .exe в ответ на вопрос "какой файл запустить", и всё потенциально работает и привычно.
Не понял эти два пункта.. Особенно пятый. Где на длл нажимать правой кнопкой мыши? Которая в папке с проектом лежит либо которая прямо в solution explorer-е - так там нет пункта Startup Project...
И два эти проекта как объединять? Достаточно ли все файлы *.cpp из проекта с Dll перенести в проект клиента командой "Add existing..."? Если этого будет достаточно, то где прописывать #include "dllmain.h" например?
А так, в исходнике dll должны быть только экспортируемые функции. Это же библиотека функций.
И не надо проекты объединять. Просто в свойствах проекта dll задать путь к .exe файлу, который нужно будет запускать.
А уж использовать dll-ку он будет по своему усмотрению. Главное, чтоб он это dll-ку увидел.