问题
I want to call the following C function:int ssh_userauth_password (ssh_session session, const char * username, const char * password)
But regular Smalltalk strings are not working:library ssh_login: session userAuth: nil password: 'myPwd'.
session
is a pointer that i already have and works ok.
But const char *
are not mapped to normal string.
Is there any class to map this ?
Also i tried with CPointer and asByteArray but both fail.
回答1:
You need to pass a CPointer object. Easiest way to do that is via 'yay' gcCopyCStringToHeap
. Alternatively there‘re variations like gcCopyUnicodeStringToHeap
.
来源:https://stackoverflow.com/questions/62800888/which-smalltalk-object-should-be-passed-to-a-c-function-expecting-const-char