- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有我的dll项目
// .h
#pragma once
#include <stdio.h>
extern "C"
{
void __declspec(dllexport) __stdcall sort(int* vect, int size);
}
//.cpp
#include "stdafx.h"
void __declspec(dllexport) __stdcall sort(int* vect, int size)
{
}
我有我的控制台项目:
#include <Windows.h>
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
/* Pointer to the sort function defined in the dll. */
typedef void (__stdcall *p_sort)(int*, int);
int _tmain(int argc, LPTSTR argv[])
{
p_sort sort;
HINSTANCE hGetProcIDDLL = LoadLibrary("dllproj.dll");
if (!hGetProcIDDLL)
{
printf("Could not load the dynamic library\n");
return EXIT_FAILURE;
}
sort = (p_sort)GetProcAddress(hGetProcIDDLL, "sort");
if (!sort)
{
FreeLibrary(hGetProcIDDLL);
printf("Could not locate the function %d\n", GetLastError());
return EXIT_FAILURE;
}
sort(NULL, 0);
return 0;
}
问题是我的函数 sort colud 找不到,即函数 GetProcAddress
总是返回 NULL
。
为什么?我该如何解决?
编辑:按照建议使用 __cdecl
(在 dll 项目中而不是 __stdcall
)和 Dependency Walker
:
我也改变了以下(在我的主要部分),但它仍然不起作用。
typedef void (__cdecl *p_sort)(int*, int);
最佳答案
函数以修饰名导出。出于调试目的,当遇到这种情况时,使用 dumpbin
或 Dependency Walker 来找出那个名字是什么。我预测它将是:_sort@8
. documentation对于 __stdcall
调用约定给出装饰规则如下:
Name-decoration convention: An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as
int func( int a, double b )
is decorated as follows:_func@12
您必须执行以下操作之一:
__cdecl
避免装修。关于windows - 找不到函数 dllexport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24138864/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!