Как говорит субъект, что я пытаюсь сделать, это похоже на this, но с использованием Visual Studio 2012.Изготовление C DLL в Visual Studio подходит для использования JS-ctypes в Mozilla
я могу строить и производить DLL, и я могу загрузить эту DLL в javascript, но я не могу получить доступ к функции в этой DLL. Глядя на DLL в DllExp, нет никаких функций, предлагающих что-то не так с DLL.
DLL - это новый проект на C++, созданный с использованием шаблона «Пустой проект». Известные настройки:
General-> Тип конфигурации, установленный в DLL
Без оптимизации.
Нет предварительно скомпилированных заголовков.
Compile, как C код
Вызов конвенции __cdecl
The commandlines для компиляции и связывания, в случае, если есть установка я не думал, что значительное, являются
/GS /TC /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc110.pdb" /fp:precise /D "_WINDLL" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\StreamInterop.pch"
И линкера
/OUT:"C:\Work\VehicleTracker-DotNet\StreamInterop\Debug\StreamInterop.dll" /MANIFEST /NXCOMPAT /PDB:"C:\Work\VehicleTracker-DotNet\StreamInterop\Debug\StreamInterop.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"C:\Work\VehicleTracker-DotNet\StreamInterop\Debug\StreamInterop.lib" /DEBUG /DLL /MACHINE:X86 /INCREMENTAL /PGD:"C:\Work\VehicleTracker-DotNet\StreamInterop\Debug\StreamInterop.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\StreamInterop.dll.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBI
Проект содержит один исходный файл C, main.c, содержащий
#include<stdio.h>
int add(int a,int b)
{
return(a+b);
}
Учитывая, что это все, что было необходимо в более раннем сообщении, мне кажется, что проблема должна быть в коммутаторах компилятора или компоновщика. Может ли кто-нибудь увидеть то, что мне не хватает?
Эй! У меня есть аналогичные проблемы: http://stackoverflow.com/questions/27381478/exporting-functions-in-msvs-2013-in-c-c-dll-for-mozilla-js-ctypes-to-use. Является ли ваша библиотека DLL с использованием 64-битного или 32-битного кода? – user2173353
Кажется, что бит 32 бит - в командной строке linker указывается kernel32.lib среди других. См. Комментарий Марка Толонен ниже о том, как на самом деле создать проект, - который оттолкнул многие трудности от мастера. –
Спасибо. Мне удалось, наконец, найти решение. Это на предыдущей ссылке, которую я предоставил, если вам интересно. :) – user2173353