summary refs log tree commit diff stats
path: root/tests/cpp/amodule.nim
blob: 2f3e34051e5760b06c29eee06eb55d5fb76116f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
import os

proc findlib: string =
  let path = getEnv("MYLIB_DOES_NOT_EXIST_PATH")
  if path.len > 0 and dirExists(path):
    path / "alib_does_not_matter.dll"
  else:
    "alib_does_not_matter.dll"

proc imported_func*(a: cint): cstring {.importc, dynlib: findlib().}
setLen*[T](v: var Vector[T]; size: int) {.importcpp: "resize", nodecl.} proc `[]`*[T](v: var Vector[T], key: int): T {.importcpp: "(#[#])", nodecl.} proc main = var v: Vector[float] v.setLen 1 v[0] = 6.0 echo v[0] main() #------------ #bug #6837 type StdString {.importCpp: "std::string", header: "<string>", byref.} = object proc initString(): StdString {.constructor, importCpp: "std::string(@)", header: "<string>".} proc size(this: var StdString): csize {.importCpp: "size", header: "<string>".} proc f(): csize = var myString: StdString = initString() return myString.size() echo f()