Я знаю, что это может показаться довольно простым для гиков. Но я хочу, чтобы это было предельно ясно.
Когда я хочу использовать Win32 DLL, обычно я просто вызываю такие API, как LoadLibrary () и GetProcAdderss (). Но в последнее время я занимаюсь разработкой DirectX9, и мне нужно добавить файлы d3d9.lib , d3dx9.lib и т. д.
Я слышал достаточно того, что LIB предназначен для статического связывания, а DLL - для динамического связывания.
Итак, в настоящее время я понимаю, что LIB содержит реализацию методов и статически связан во время компоновки как часть окончательного EXE-файла. Хотя DLL динамически загружается во время выполнения и не является частью окончательного EXE-файла.
Но иногда есть некоторые LIB-файлы , поставляемые с DLL-файлами, поэтому:
После проверки Википедии я помню, что эти файлы LIB называются библиотека импорта . lib и т. д. Файлы.
Я слышал достаточно, что LIB для статического связывания, а DLL - для динамического связывания.
Так что в настоящее время я понимаю, что LIB содержит реализацию методов и статически связан по ссылке. время как часть окончательного EXE-файла. Хотя DLL динамически загружается во время выполнения и не является частью окончательного EXE-файла.
Но иногда есть некоторые LIB-файлы , поставляемые с DLL-файлами, поэтому:
После проверки Википедии я помню, что эти файлы LIB называются библиотека импорта . lib и т. д. Файлы.
Я слышал достаточно, что LIB для статического связывания, а DLL - для динамического связывания.
Так что в настоящее время я понимаю, что LIB содержит реализацию методов и статически связан по ссылке. время как часть окончательного EXE-файла. Хотя DLL динамически загружается во время выполнения и не является частью окончательного EXE-файла.
Но иногда есть некоторые LIB-файлы , поставляемые с DLL-файлами, поэтому:
После проверки Википедии я помню, что эти файлы LIB называются библиотека импорта .
Таким образом, в настоящее время я понимаю, что LIB содержит реализацию методов и статически связан во время компоновки как часть окончательного EXE-файла. Хотя DLL динамически загружается во время выполнения и не является частью окончательного EXE-файла.
Но иногда есть некоторые LIB-файлы , поставляемые с DLL-файлами, поэтому:
После проверки Википедии я помню, что эти файлы LIB называются библиотека импорта .
Таким образом, в настоящее время я понимаю, что LIB содержит реализацию методов и статически связан во время компоновки как часть окончательного EXE-файла. Хотя DLL динамически загружается во время выполнения и не является частью окончательного EXE-файла.
Но иногда есть некоторые LIB-файлы , поставляемые с DLL-файлами, поэтому:
После проверки Википедии я помню, что эти файлы LIB называются библиотека импорта . Но мне интересно, как это работает с моим основным приложением и динамически загружаемыми DLL.
Как и сказал RBerteig, в файлах LIB есть некоторый код заглушки, созданный с помощью DLL. Таким образом, вызывающая последовательность должна быть такой:
Мое основное приложение -> заглушка в LIB -> настоящая целевая DLL
Итак, какую информацию следует содержать в этих LIB? Я мог бы подумать о следующем:
Прав ли я в этом? Есть ли что-то еще?
Кстати: есть ли инструмент, который может проверять библиотеку импорта? Если я это увижу, сомнений больше не будет. NET MVC 2 и Razor В файле _Layout.cshtml у меня есть следующая запись: @ Html.Action ("LoadPagesStructure", "Page") Внутри класса PageController методы LoadPagesStructure выглядят следующим образом: [ChildActionOnly] / * этот атрибут ... В файле _Layout.cshtml есть следующая запись: Внутри класса PageController , методы LoadPagesStructure выглядят следующим образом: Наконец, мой Представление LoadPagesStructure.cshtml выглядит следующим образом: К сожалению, исключение выдается после выполнения: Как можно динамически создавать ссылки на мои страницы? PS: Я знаю что я могу сделать это следующим образом: С уважением, @Html.Action("LoadPagesStructure", "Page")
[ChildActionOnly] /* this attribute indicates that an action should not
be invoked as a result of a user request (by url) */
public ActionResult LoadPagesStructure()
{
ViewModel.Pages = new List
@inherits System.Web.Mvc.WebViewPage
@foreach (var page in View.Pages) {
System.InvalidOperationException: Child actions are not allowed to perform redirect actions.
@page
. Тем не менее я думаю, что это не правильный путь, потому что здесь невозможно управлять маршрутизацией.