Windows上的GHC FFI:对“CreateInstance @ 4”的未定义引用

时间:2014-06-13 09:25:44

标签: haskell

我有一个超级基本的测试模块,试图使用Windows DLL:

{-# LANGUAGE ForeignFunctionInterface #-}

module Fface where

import Foreign
import Foreign.C.Types

newtype FFACE = FFACE (Ptr FFACE)

foreign import stdcall unsafe "FFACE4.h CreateInstance"
    c_CreateInstance :: CUInt -> IO (Ptr FFACE)

当尝试将其编译成简单的测试程序时,我收到以下错误:

Linking Main.exe ...
.\Fface.o:fake:(.text+0x18): undefined reference to `CreateInstance@4'
collect2.exe: error: ld returned 1 exit status

使用gendef从DLL转储导出列表我发现该函数实际上是以" CreateInstance @ 1925"导出的,但几乎所有其他函数都只是以其普通名称导出而没有@数字的东西。什么是@ 1925,我怎样才能让GHC使用它而不是@ 4?

0 个答案:

没有答案