Giter Site home page Giter Site logo

How to convert the union in struct? about c-for-go HOT 5 OPEN

xlab avatar xlab commented on July 17, 2024
How to convert the union in struct?

from c-for-go.

Comments (5)

xlab avatar xlab commented on July 17, 2024

@cznic are you sure Go is aware of this union at all? ;)

from c-for-go.

cznic avatar cznic commented on July 17, 2024

@xlab All I know is that the error looks to me like a fault of cc, perhaps because of the anonymous struct member. How it is/should be handled in higher layers is to be cleared later.

I hope to dive into this in the morning, that's in ~10 hours from now.

from c-for-go.

cznic avatar cznic commented on July 17, 2024

@xlab Finally looking into this and the error message seems to be not produced by cc.

Sorry for the noise.

from c-for-go.

xlab avatar xlab commented on July 17, 2024

@gengen1988 you'll have to make a wrapper in C for this union, if you want to access and set the data. That's a imitation from Go (cgo part).

You can simply ignore this struct or make it raw see MemTips https://github.com/xlab/c-for-go/wiki/Translator-config-section#memtips

from c-for-go.

gengen1988 avatar gengen1988 commented on July 17, 2024

This is my yaml:

---
GENERATOR:
  PackageName: fmod
  FlagGroups:
    - {name: LDFLAGS, flags: ["-lfmod", "-L${SRCDIR}"]}
  Includes:
    - fmod.h

PARSER:
  IncludePaths:
    - fmod
  SourcesPaths:
    - fmod.h

TRANSLATOR:
  ConstRules:
    defines: eval

  Rules:
    global:
      - {action: accept, from: ^FMOD_}

    function:

    type:
      # - {action: ignore, from: FMOD_DSP_PARAMETER_DESC}

    const:
      - {action: ignore, from: ^FMOD_PRESET_}

    private:
      - {transform: unexport}

    post-global:
      # - {load: snakecase}

  PtrTips:
    function:
      - {target: FMOD_System_Create, tips: [sref]}

  MemTips:
    # - {target: FMOD_DSP_PARAMETER_DESC, self: raw}

if add {action: ignore, from: FMOD_DSP_PARAMETER_DESC} then:

./cgo_helpers.go:9437: undefined: FMOD_DSP_PARAMETER_DESC
./cgo_helpers.go:9477: undefined: FMOD_DSP_PARAMETER_DESC
./cgo_helpers.go:9483: undefined: NewFMOD_DSP_PARAMETER_DESCRef
./fmod.go:3384: undefined: FMOD_DSP_PARAMETER_DESC

if I make it raw, then:

./cgo_helpers.go:9689: x[i0][i1].PassValue undefined (type FMOD_DSP_PARAMETER_DESC has no field or method PassValue)

Is there some example for "wrapper in C"?

from c-for-go.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.