我需要在我的应用程序中使用Windows DLL,具体来说是kernel32.dll。 我只找到这个:WindowsDLL
但是那个“指南”并不是那么直观。
例如,在Python中,您使用ctypes。 ej:ctypes.windll.kernel32.SetConsoleTextAtribute(handle, color)
除了Golang外,我如何能做同样的事情?
任何人都可以举出我想要的例子吗?
答案 0 :(得分:2)
实际上,您拥有的链接是一个很好的参考。 您现在需要的只是选择建议的实现之一。
您可以在这里找到@Bean
public TcpConnectionFactoryFactoryBean factory(LengthHeaderDeserializer deserializer) throws Exception {
CompletableFuture.runAsync(() -> waitForSocket(port)).get(5, TimeUnit.MINUTES);
TcpConnectionFactoryFactoryBean fact = new TcpConnectionFactoryFactoryBean();
....
}
private void waitForSocket(int port) {
do {
try {
SocketUtils.findAvailableTcpPort(port, port);
return;
} catch (Exception e) {
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e1) {
return;
}
}
} while (true);
}
的文档:https://docs.microsoft.com/en-us/windows/console/setconsoletextattribute
公开的API定义为:
kernel32.SetConsoleTextAtribute
第二个选项的示例(使用BOOL WINAPI SetConsoleTextAttribute(
_In_ HANDLE hConsoleOutput,
_In_ WORD wAttributes
);
):
syscall.NewProc