Вопрос

Я собираю DLL, которая должна использовать Portaudio.Он использует всевозможные библиотеки Windows для розеток и такого, но линкер не распознает библиотеку Portaudio.Затем я вспомнил Portaudio использует __cdcel вместо __STDCall.Обычно я бы просто использовал __CDCECL и сделать с ним, но DLL, которую я собираюсь, необходимо использовать __STCall, потому что я собираюсь использовать его с Visual Basic.

И если этот проект звучит как немного клюде к вам, оно есть.

Это было полезно?

Решение

Глупо меня!Все, что мне нужно сделать, это использовать __CDCECL и объявить экспортированные функции как __STDCall!

Другие советы

Я предполагаю, что вам нужно использовать __CDECL, потому что Portaudio будет вызывать некоторые ваши функции?Затем создайте внутреннюю функцию, объявленную __CDECL, передайте эту функцию в Portaudio и предоставить экспортированную функцию (объявленную __Stcall), которая вызывает вашу внутреннюю функцию.

Но я догадываюсь на то, что вы пытаетесь сделать, вы должны предоставить больше информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top