# #go
Вопрос:
Я хочу реализовать перенаправление dll(или прокси-сервер dll)
В mingw я могу использовать источник cpp с помощью .файл def, например gcc -shared -o test.dll functions.def test.cpp
Но я не знаю, как это реализовать в голанге
Ответ №1:
Я знаю, что нужно сделать, чтобы решить эту проблему.
используйте extldflags
Первый Способ:
- скомпилируйте файл .def в файл .exp
dlltool --def functions.def --output-exp evildll.exp
- скомпилировать main.go
главное.вперед
package main
import "C"
func main() {
// Need a main function to make CGO compile package as C shared library
}
используйте команду go build -buildmode=c-shared -o exportgo.dll -ldflags="-extldflags=-Wl,C:/Users/Akkuman/Desktop/go-dll-proxy/evildll.exp"
затем вы можете получить dll
Второй Способ
используйте команду go build -buildmode=c-shared -o exportgo.dll -ldflags="-extldflags=-Wl,C:/Users/Akkuman/Desktop/go-dll-proxy/functions.def"
затем вы можете получить dll, но с дополнительной функцией экспорта