Я потратил много времени, пытаясь выяснить это, поэтому я подумал, что могу получить некоторую помощь здесь.В основном у меня есть функция DLL, объявленная следующим образом в IDL:
[id(1), helpstring("method findFile")] HRESULT findFile(
[in] BSTR fileName,
[out] LONG* someValue
);
Как именно я могу объявить и вызвать из C ++ / C #?
Примечание: есть приложение VB6, которое успешно вызываетфункция.Объявление:
Private Declare Function findFile Lib "thedll.dll" ( _
ByVal fileName As String, _
ByRef someValueAs Long _
)
Вызов:
Dim a As String
Dim b As Long
Dim r As long
a = "image.jpg"
b = -1
r = findFile(a, b)
Приложение :
Я не могу гарантировать, что код VB6 выглядит так, потому что яУ меня есть исполняемый файл, мне только сказали, как выглядит эта часть, так что, возможно, вы, ребята, правы, и она не соответствует.Я написал C ++ DLL, и теперь мне нужно собрать некоторый код, который успешно вызывает DLL, чтобы попробовать что-то и не зависеть от этого exe-файла.
Реализация функции DLL на C ++ выглядит следующим образом:
STDMETHODIMP CFinder::findFile(BSTR fileName, LONG* someValue)
{
*someValue = 8;
return S_OK;
}