调用DL.dlopen时候出现的错误,请高手支招,不胜感激!

ruby脚本:
require 'dl'
Message = DL.dlopen( 'ruby_c_adpt_dll.dll')
print_msg = Message["print_msg", "ISI"]
msg_size = print_msg.call("aaaaaaaaa", 25)
puts "Just wrote #{msg_size} bytes"


ruby_c_adpt_dll.dll中的.c文件的代码如下:
#include <stdio.h>
int print_msg(char* text, int number)
{
 return printf("Text: %s, (%d)\n", text, number);
}

在执行ruby脚本的生活出现如下错误:
>ruby temp.rb
temp.rb:383:in `[]': unknown symbol "print_msgA" (RuntimeError)
    from temp.rb:383
>Exit code: 1

明明写的是print_msg,怎么在运行的时候会被认为是print_msgA呢?