dll生成-VC++生成DLL文件,产生的函数前面带下划线 后面带@符号,请问这个怎么解决?

问题描述

VC++生成DLL文件,产生的函数前面带下划线 后面带@符号,请问这个怎么解决?

如题

函数名应该是 Java_GoodLuck_get 但是结果却是这样
_Java_GoodLuck_get@8。

这样我不能用Java调用这个DLL里面的函数啊。大神求助。

解决方案

LZ可以参考这篇文章:
http://blog.csdn.net/codehat/article/details/4439465

应该是你没有指定导出符号,所以就会默认生成符号,默认生成的符号里面就有些特殊字符。

解决方案二:

通过def文件来指定导出函数名

时间: 2016-01-20
Tags: dll, jni, dll生成

dll生成-VC++生成DLL文件,产生的函数前面带下划线 后面带@符号,请问这个怎么解决?的相关文章

visual studio 2015生成64位DLL文件

新建一个visual C ++  ->win32项目 点击生成->配置管理器新建一个64位debug位平台 hello.cpp程序代码如下: #include "stdafx.h" #include "jni.h" #include "com_magc_jni_HelloWorld.h" JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello (JNIEnv *

c# c++ dll-C#调用C++和opencv生成的dll库文件,其中函数中带有指针

问题描述 C#调用C++和opencv生成的dll库文件,其中函数中带有指针 大家好,我用C#调用C++的dll,其中一个函数中有指针,参数的定义在C++中是一个结构体,但是我现在遇到的问题是无法获取托管类型的地址和大小,或无法声明指向它的指针,下面我把这个函数在C++中的定义和我自己转到C#中的定义给大家贴出来,大家帮帮忙,本人属于C++和C#新手. C++ 1. int THFI_Create (short nChannelNum,THFI_Param* pParam) 功能:初始化THFa

struts2 0+dll-java web项目调用 vc++的dll文件

问题描述 java web项目调用 vc++的dll文件 我用java 的jni调用vc++写好的dll动态链接库,使用main方法测试没有问题,但是放在web项目的Action中调用就不执行,在static{ System.put.println("load dll..."); System.loadlobrary("ukeyjni"); system.out.println("end load..."); } 上面的调用前后都能打印,在调用的

VC++动态链接库(DLL)编程之静态链接库

  对静态链接库的讲解不是本文的重点,但是在具体讲解DLL之前,通过一个静态链接库的例子可以快速地帮助我们建立"库"的概念. 图1 建立一个静态链接库 如图1,在VC++6.0中new一个名称为libTest的static library工程(单击此处下载本工程附件),并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下: //文件:lib.h #ifndef LIB_H #define LIB_H extern "C" int add(

VC++动态链接库(DLL)编程深入浅出

  4.2 声明导出函数 DLL中导出函数的声明有两种方式:一种为4.1节例子中给出的在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出.属性及其他方面的信息. 下面的代码演示了怎样同.def文件将函数add声明为DLL导出函数(需在dllTest工程中添加lib.def文件): ; lib.def : 导出DLL函数 LIBRARY dllTest EXPORTS add

VC++动态链接库(DLL)非MFC DLL介绍

  4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数. 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件).注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5.6节要讲述的MFC 动态链接库. 图6 建立一个非MFC DLL 在建立的工程中添加lib.h及lib.cpp文件,源

关于VC实现dll/exe自动化编译版本的脚本实现

问题描述 关于VC实现dll/exe自动化编译版本的脚本实现 windows下VC生成dll/exe的版本是通过编辑资源文件的方式,请问能否实现在.h文件里定义版本,然后通过编译脚本把.h定义的版本信息自动修改到资源文件.这样编译完成后,就生成了在.h指定的版本.哪位大侠能够提供这样的脚本? 解决方案 定义在 .h 中然后在 版本 中显示? 写个程序自动修改资源中的版本信息,然后再编译.可以通过 DATE 和 TIME 来输出编译时间. 解决方案二: 感谢你的回答.情况是这样的:对于同一个模块(

VC++的DLL应用(含Demo演示)

在大学大一的时候学的是C,然后后来大二的时候专业又开了C++这个课程,然后再后来自己又自学了一点VC++,大三的时候也试着编写过一个MFC的最简单的窗口程序.到大四的时候,自己又做了一个GIS的项目,是用C#.NET来编写的,然后发现C#上手好容易,而且还大部分语法规则都沿用了C,C++的习惯,于是觉得C++实在是没有一点优势可言啊.但这个暑假的实习经历又改变了我的观点:C++在写窗口程序虽然麻烦,但是却什么能做,而且对比C#来说,对运行环境的要求不高,不用像C#程序在安装之前还要安装100M多

如何利用Excel批量生成指定名称的文件夹

  批量生成指定名称的文件夹,很多人的是借助软件,其实利用excel加系统自带的记事本就可以做了. 如图,把指定名称的文件夹名称输入到EXCEL.同时增加一个辅助列. 在辅助列第1个单元格输入公式:="MD "&D12,并向下拖动. 注意点: 1.这里是D12单元格,你自己在操作的时候根据自己的情况.达到在所有单元格前增加"MD ". 2.MD后面还要有一个空格哦. 3.复制生成的辅助列. 4.在要批量生成文件夹的位置,新建一个txt文本. 5.在新建的一个