Search code examples
smalltalkvisualworks

Which Smalltalk object should be passed to a C function expecting const char*


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.


Solution

  • You need to pass a CPointer object. Easiest way to do that is via 'yay' gcCopyCStringToHeap. Alternatively there‘re variations like gcCopyUnicodeStringToHeap.