Products
  • Wolfram|One

    The definitive Wolfram Language and notebook experience

  • Mathematica

    The original technical computing environment

  • Wolfram Notebook Assistant + LLM Kit

    All-in-one AI assistance for your Wolfram experience

  • System Modeler
  • Wolfram Player
  • Finance Platform
  • Wolfram Engine
  • Enterprise Private Cloud
  • Application Server
  • Wolfram|Alpha Notebook Edition
  • Wolfram Cloud App
  • Wolfram Player App

More mobile apps

Core Technologies of Wolfram Products

  • Wolfram Language
  • Computable Data
  • Wolfram Notebooks
  • AI & Linguistic Understanding

Deployment Options

  • Wolfram Cloud
  • wolframscript
  • Wolfram Engine Community Edition
  • Wolfram LLM API
  • WSTPServer
  • Wolfram|Alpha APIs

From the Community

  • Function Repository
  • Community Paclet Repository
  • Example Repository
  • Neural Net Repository
  • Prompt Repository
  • Wolfram Demonstrations
  • Data Repository
  • Group & Organizational Licensing
  • All Products
Consulting & Solutions

We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

  • Data & Computational Intelligence
  • Model-Based Design
  • Algorithm Development
  • Wolfram|Alpha for Business
  • Blockchain Technology
  • Education Technology
  • Quantum Computation

WolframConsulting.com

Wolfram Solutions

  • Data Science
  • Artificial Intelligence
  • Biosciences
  • Healthcare Intelligence
  • Sustainable Energy
  • Control Systems
  • Enterprise Wolfram|Alpha
  • Blockchain Labs

More Wolfram Solutions

Wolfram Solutions For Education

  • Research Universities
  • Colleges & Teaching Universities
  • Junior & Community Colleges
  • High Schools
  • Educational Technology
  • Computer-Based Math

More Solutions for Education

  • Contact Us
Learning & Support

Get Started

  • Wolfram Language Introduction
  • Fast Intro for Programmers
  • Fast Intro for Math Students
  • Wolfram Language Documentation

More Learning

  • Highlighted Core Areas
  • Demonstrations
  • YouTube
  • Daily Study Groups
  • Wolfram Schools and Programs
  • Books

Grow Your Skills

  • Wolfram U

    Courses in computing, science, life and more

  • Community

    Learn, solve problems and share ideas.

  • Blog

    News, views and insights from Wolfram

  • Resources for

    Software Developers

Tech Support

  • Contact Us
  • Support FAQs
  • Support FAQs
  • Contact Us
Company
  • About Wolfram
  • Career Center
  • All Sites & Resources
  • Connect & Follow
  • Contact Us

Work with Us

  • Student Ambassador Initiative
  • Wolfram for Startups
  • Student Opportunities
  • Jobs Using Wolfram Language

Educational Programs for Adults

  • Summer School
  • Winter School

Educational Programs for Youth

  • Middle School Camp
  • High School Research Program
  • Computational Adventures

Read

  • Stephen Wolfram's Writings
  • Wolfram Blog
  • Wolfram Tech | Books
  • Wolfram Media
  • Complex Systems

Educational Resources

  • Wolfram MathWorld
  • Wolfram in STEM/STEAM
  • Wolfram Challenges
  • Wolfram Problem Generator

Wolfram Initiatives

  • Wolfram Science
  • Wolfram Foundation
  • History of Mathematics Project

Events

  • Stephen Wolfram Livestreams
  • Online & In-Person Events
  • Contact Us
  • Connect & Follow
Wolfram|Alpha
  • Your Account
  • User Portal
  • Wolfram Cloud
  • Products
    • Wolfram|One
    • Mathematica
    • Wolfram Notebook Assistant + LLM Kit
    • System Modeler
    • Wolfram Player
    • Finance Platform
    • Wolfram|Alpha Notebook Edition
    • Wolfram Engine
    • Enterprise Private Cloud
    • Application Server
    • Wolfram Cloud App
    • Wolfram Player App

    More mobile apps

    • Core Technologies
      • Wolfram Language
      • Computable Data
      • Wolfram Notebooks
      • AI & Linguistic Understanding
    • Deployment Options
      • Wolfram Cloud
      • wolframscript
      • Wolfram Engine Community Edition
      • Wolfram LLM API
      • WSTPServer
      • Wolfram|Alpha APIs
    • From the Community
      • Function Repository
      • Community Paclet Repository
      • Example Repository
      • Neural Net Repository
      • Prompt Repository
      • Wolfram Demonstrations
      • Data Repository
    • Group & Organizational Licensing
    • All Products
  • Consulting & Solutions

    We deliver solutions for the AI era—combining symbolic computation, data-driven insights and deep technical expertise

    WolframConsulting.com

    Wolfram Solutions

    • Data Science
    • Artificial Intelligence
    • Biosciences
    • Healthcare Intelligence
    • Sustainable Energy
    • Control Systems
    • Enterprise Wolfram|Alpha
    • Blockchain Labs

    More Wolfram Solutions

    Wolfram Solutions For Education

    • Research Universities
    • Colleges & Teaching Universities
    • Junior & Community Colleges
    • High Schools
    • Educational Technology
    • Computer-Based Math

    More Solutions for Education

    • Contact Us
  • Learning & Support

    Get Started

    • Wolfram Language Introduction
    • Fast Intro for Programmers
    • Fast Intro for Math Students
    • Wolfram Language Documentation

    Grow Your Skills

    • Wolfram U

      Courses in computing, science, life and more

    • Community

      Learn, solve problems and share ideas.

    • Blog

      News, views and insights from Wolfram

    • Resources for

      Software Developers
    • Tech Support
      • Contact Us
      • Support FAQs
    • More Learning
      • Highlighted Core Areas
      • Demonstrations
      • YouTube
      • Daily Study Groups
      • Wolfram Schools and Programs
      • Books
    • Support FAQs
    • Contact Us
  • Company
    • About Wolfram
    • Career Center
    • All Sites & Resources
    • Connect & Follow
    • Contact Us

    Work with Us

    • Student Ambassador Initiative
    • Wolfram for Startups
    • Student Opportunities
    • Jobs Using Wolfram Language

    Educational Programs for Adults

    • Summer School
    • Winter School

    Educational Programs for Youth

    • Middle School Camp
    • High School Research Program
    • Computational Adventures

    Read

    • Stephen Wolfram's Writings
    • Wolfram Blog
    • Wolfram Tech | Books
    • Wolfram Media
    • Complex Systems
    • Educational Resources
      • Wolfram MathWorld
      • Wolfram in STEM/STEAM
      • Wolfram Challenges
      • Wolfram Problem Generator
    • Wolfram Initiatives
      • Wolfram Science
      • Wolfram Foundation
      • History of Mathematics Project
    • Events
      • Stephen Wolfram Livestreams
      • Online & In-Person Events
    • Contact Us
    • Connect & Follow
  • Wolfram|Alpha
  • Wolfram Cloud
  • Your Account
  • User Portal
Wolfram Language & System Documentation Center
Wolfram LibraryLink User Guide
  • Related Guides
    • Wolfram LibraryLink
    • Calling External Programs
    • External Operations
    • C/C++ Language Interface
  • Tech Notes
    • Compiling Wolfram Language Expressions
    • Related Guides
      • Wolfram LibraryLink
      • Calling External Programs
      • External Operations
      • C/C++ Language Interface
    • Tech Notes
      • Compiling Wolfram Language Expressions
LIBRARYLINK PACKAGE OVERVIEW
  • Related Guides
    • Wolfram LibraryLink
    • Calling External Programs
    • External Operations
    • C/C++ Language Interface
  • Tech Notes
    • Compiling Wolfram Language Expressions
    • Related Guides
      • Wolfram LibraryLink
      • Calling External Programs
      • External Operations
      • C/C++ Language Interface
    • Tech Notes
      • Compiling Wolfram Language Expressions

Wolfram LibraryLink User Guide

Wolfram LibraryLink provides a powerful way to connect external code to the Wolfram Language, enabling high-speed and memory-efficient execution. It does this by allowing dynamic libraries to be directly loaded into the Wolfram Language kernel so that functions in the libraries can be immediately called from the Wolfram Language.
You can exchange not only C-like data types such as integers, reals, packed arrays, and strings, but also arbitrary Wolfram Language expressions. In addition, there are useful functions such as sending errors and calling back to the Wolfram Language.

Introduction

Alternatives to Library Functions

The Wolfram Language

WSTP Applications

Library Structure and Life Cycle

Initialization

Functions Arguments and Results

Naming Conventions

Types

Callbacks

Callback Evaluations

Errors

Error Codes

Errors in Callbacks

Uninitialization

Interaction with the Wolfram Language

Library Specification

Function Name

Type Specification

Memory Management of MTensors

MTensor Input Arguments

Automatic Passing
Constant Passing
Manual Passing
Shared Passing

MTensor Return

Automatic Return
Shared Return

MTensor Memory Management Summary

MSparseArray

SparseArray Type Specification

MSparseArray Data Structure

MSparseArray Input Argument Memory Management

Automatic Passing
Constant Passing
Manual Passing
Shared Passing

MSparseArray Return

Automatic Return
Shared Return

MNumericArray [Experimental]

Type Specification

MNumericArray Data Structure

MNumericArray Input Argument Memory Management

Automatic Passing
Constant Passing
Manual Passing
Shared Passing

MNumericArray Return

Automatic Return
Shared Return

MImage

Image Type Specification

MImage Data Structure

MImage Input Argument Memory Management

Automatic Passing
Constant Passing
Manual Passing
Shared Passing

MImage Return

Automatic Return
Shared Return

Managed Library Expressions

Library Callback Evaluation Functions

String Arguments

LinkObject Arguments and Result

Locating Libraries

Installing Your Own Libraries

Library Dependencies

Library Version Information

Problems Loading a Library

The Examples

Using the Examples

Source

demo

demo_shared

demo_error

demo_managed

demo_callback

demo_sparse

demo_image

demo_numericarray

Numerical Examples

Basic Quadratic Function Example
Mandelbrot Set
Brusselator PDE
Duffing Equation Folding

Image Processing Examples

Standalone Examples

Using Templates to Parametrize on Type
Restricting Accepted Types

External Library Examples

OpenCV Example
Importing Frames from a Video
Importing Raw Images

Reference

Wolfram Language Functions

Loading and Unloading Functions

LibraryFunctionLoad
LibraryFunction
LibraryFunctionUnload
LibraryUnload

Information

LibraryFunctionInformation

Locating Libraries

$LibraryPath
FindLibrary
LibraryLoad

Managed Library Expressions

CreateManagedLibraryExpression
ManagedLibraryExpressionQ
ManagedLibraryExpressionID

Library Callback Evaluation Functions

ConnectLibraryCallbackFunction

Errors

LibraryFunctionError

LibraryLink` Package

$LibraryError
LibraryVersionInformation
LibraryVersionString

Library Callback Functions

Creating and Freeing MTensors

MTensor_new
MTensor_free
MTensor_clone

Structural Information from MTensors

MTensor_getRank
MTensor_getDimensions
MTensor_getFlattenedLength
MTensor_getType

Getting Elements of MTensors

MTensor_getInteger
MTensor_getReal
MTensor_getComplex
MTensor_getMTensor
MTensor_getIntegerData
MTensor_getRealData
MTensor_getComplexData

Setting Elements of MTensors

MTensor_setInteger
MTensor_setReal
MTensor_setComplex
MTensor_setMTensor

Memory Management of MTensors

MTensor_disown
MTensor_disownAll
MTensor_shareCount

Handling Errors

Message
AbortQ

String Functions

UTF8String_disown

Callback Evaluations

getWSLINK
processWSLINK

Library Callback Evaluation Functions

registerLibraryCallbackManager
unregisterLibraryCallbackManager
callLibraryCallbackFunction
releaseLibraryCallbackFunction

Managed Library Expressions

registerLibraryExpressionManager
unregisterLibraryExpressionManager
releaseManagedLibraryExpression

Creating and Freeing MSparseArrays

MSparseArray_fromExplicitPositions
MSparseArray_clone
MSparseArray_free

Memory Management of MSparseArrays

MSparseArray_disown
MSparseArray_disownAll
MSparseArray_shareCount

Structural Information from MSparseArrays

MSparseArray_getRank
MSparseArray_getDimensions
MSparseArray_getExplicitPositions
MSparseArray_getColumnIndices
MSparseArray_getRowPointers

Values from MSparseArrays

MSparseArray_getExplicitValues
MSparseArray_getImplicitValue

Conversion to and from MSparseArray

MSparseArray_toMTensor
MSparseArray_resetImplicitValue

Creating and Freeing MNumericArrays

MNumericArray_new
MNumericArray_free
MNumericArray_clone

Memory Management of MNumericArrays

MNumericArray_disown
MNumericArray_disownAll
MNumericArray_shareCount

Structural Information from MNumericArrays

MNumericArray_getRank
MNumericArray_getDimensions
MNumericArray_getFlattenedLength
MNumericArray_getType

Getting Elements of MNumericArrays

MNumericArray_getData

Converting the type of MNumericArrays

MNumericArray_convertType

Creating and Freeing MImages

MImage_new2D
MImage_new3D
MImage_free
MImage_clone

Memory Management of MImages

MImage_disown
MImage_disownAll
MImage_shareCount

Structural Information from MImages

MImage_getDataType
MImage_getRowCount
MImage_getColumnCount
MImage_getSliceCount
MImage_getRank
MImage_getChannels
MImage_alphaChannelQ
MImage_interleavedQ
MImage_getColorSpace
MImage_getFlattenedLength

Getting Elements of MImages

MImage_getBit
MImage_getByte
MImage_getBit16
MImage_getReal32
MImage_getReal
MImage_getRawData
MImage_getBitData
MImage_getByteData
MImage_getBit16Data
MImage_getReal32Data
MImage_getRealData

Setting Elements of MImages

MImage_setBit
MImage_setByte
MImage_setBit16
MImage_setReal32
MImage_setReal

Converting the type of MImages

MImage_convertType

Related Guides

    ▪
  • Wolfram LibraryLink
  • ▪
  • Calling External Programs
  • ▪
  • External Operations
  • ▪
  • C/C++ Language Interface

Related Tech Notes

    ▪
  • Compiling Wolfram Language Expressions
Top
Introduction for Programmers
Introductory Book
Wolfram Function Repository | Wolfram Data Repository | Wolfram Data Drop | Wolfram Language Products
Top
  • Products
  • Wolfram|One
  • Mathematica
  • Notebook Assistant + LLM Kit
  • System Modeler

  • Wolfram|Alpha Notebook Edition
  • Wolfram|Alpha Pro
  • Mobile Apps

  • Wolfram Player
  • Wolfram Engine

  • Volume & Site Licensing
  • Server Deployment Options
  • Consulting
  • Wolfram Consulting
  • Repositories
  • Data Repository
  • Function Repository
  • Community Paclet Repository
  • Neural Net Repository
  • Prompt Repository

  • Wolfram Language Example Repository
  • Notebook Archive
  • Wolfram GitHub
  • Learning
  • Wolfram U
  • Wolfram Language Documentation
  • Webinars & Training
  • Educational Programs

  • Wolfram Language Introduction
  • Fast Introduction for Programmers
  • Fast Introduction for Math Students
  • Books

  • Wolfram Community
  • Wolfram Blog
  • Public Resources
  • Wolfram|Alpha
  • Wolfram Problem Generator
  • Wolfram Challenges

  • Computer-Based Math
  • Computational Thinking
  • Computational Adventures

  • Demonstrations Project
  • Wolfram Data Drop
  • MathWorld
  • Wolfram Science
  • Wolfram Media Publishing
  • Customer Resources
  • Store
  • Product Downloads
  • User Portal
  • Your Account
  • Organization Access

  • Support FAQ
  • Contact Support
  • Company
  • About Wolfram
  • Careers
  • Contact
  • Events
Wolfram Community Wolfram Blog
Legal & Privacy Policy
WolframAlpha.com | WolframCloud.com
© 2025 Wolfram
© 2025 Wolfram | Legal & Privacy Policy |
English