Присвоение Горячей клавиши к кнопке в форме Доступа 2007 года

API-интерфейс StrSafe немного странный, поскольку у него нет ни собственного .DLL, ни собственных экспортируемых функций. Я предполагаю, что это было разработано таким образом, потому что это должно было поддержать более старые версии Windows, которые уже были выпущены. Он был создан во время принудительного пакета безопасности WinXP:

В феврале и марте 2002 года все разработки приложений в Microsoft были остановлены, и разработчики приняли участие в инициативе Security Push. Цель состояла в том, чтобы проверить весь код на наличие возможных уязвимостей и устранить эти проблемы. Одним из результатов Security Push стала библиотека безопасных строковых функций под названием «strsafe.lib» со связанным заголовком «strsafe.h». Эта библиотека доступна через Platform SDK, который можно загрузить с веб-сайта MSDN и автоматически устанавливается как часть Visual C ++. NET 2003.

blockquote>

Насколько я могу судить, копия strsafe.h была также включена в Написание безопасного кода (второе издание) Майкла Ховарда и Дэвида Леблана, но я не уверен, что они являются первоначальными авторами (Дэвид Леблан является автором SafeInt):

Вы можете найти копию Strsafe.h в сопутствующем контенте в папке Secureco2 \ Strsafe.

blockquote>

msvcrt.dll в настоящее время является системным файлом, без него поставляется только Windows 95. Вы не должны использовать его в качестве среды выполнения C, но код SDK от Microsoft, вероятно, может использовать его без проблем.

msvcrt.dll теперь является «известной DLL», что означает, что это системный компонент , принадлежащий и созданный Windows. Он предназначен для будущего использования только компонентами системного уровня.

blockquote>

Если вы хотите использовать msvcrt.dll в качестве среды выполнения C, вы должны использовать WDK для < = Windows 7, но при использовании встроенной версии StrSafe. h, пока вы ссылаетесь на .lib, который содержит требуемые функции типа vsnprintf, на самом деле не должно иметь значения, из какого CRT оно происходит. Существует также файл StrSafe.lib, но Microsoft рекомендует использовать встроенную версию.


Вы правы в том, что Windows API должен быть независимым от CRT, но StrSafe также поддерживает функции stdin, такие как StringCbGetsA, и они по какой-то причине не решили разделить их в отдельный заголовок. Это в сочетании с необходимостью существующей функции типа vsnprintf для выполнения фактической работы означает, что StrSafe в некоторой степени привязан к CRT, даже если он предназначен для использования всеми разработчиками WinAPI.

Вероятно, нет верного ответа на вопрос, является ли он частью WinAPI или нет, поскольку он немного субъективен. Поскольку он включен в SDK в папке include, можно предположить, что Microsoft считает, что это компонент SDK / API, а не компонент CRT.

7
задан Istari 5 May 2009 в 09:43
поделиться

2 ответа

При создании кнопки используйте амперсанд перед буквой, которую вы хотите Alt +? в свойстве Caption.

Примеры:

& File ---> F ile

& Edit ---> E dit

F & orge -> F o rge

E & nough -> E n aough

9
ответ дан 6 December 2019 в 11:52
поделиться

Используя CodeSnippetExpression и строку, заключенную в кавычки, я смог выдать источник, который я бы хотел увидеть из Microsoft.CSharp.CSharpCodeGenerator.

Итак, чтобы ответить на вопрос выше, замените эту строку:

field.InitExpression = new CodePrimitiveExpression(HugeString);

следующей:

5
ответ дан 6 December 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: