Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 19.04.2018
Сообщений: 101

dll возвращающая текстовую строку

12.06.2024, 21:44. Показов 2468. Ответов 24
Метки dll (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе
Создал проект dll которая должна вернуть строку
C++
1
2
3
4
5
6
7
8
9
10
// MathLibrary.h - Contains declarations of math functions
#pragma once
 
#ifdef MATHLIBRARY_EXPORTS
#define MATHLIBRARY_API __declspec(dllexport)
#else
#define MATHLIBRARY_API __declspec(dllimport)
#endif
 
extern "C" MATHLIBRARY_API string GetHWID();
и
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// MathLibrary.cpp : Defines the exported functions for the DLL.
#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include <utility>
#include <limits.h>
#include "MathLibrary.h"
#include <windows.h>
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
 
using namespace std;
 
string GetHWID()
{
    string initstring;
    initstring = "Error : string is null";
    UCHAR szFileSys[255], szVolNameBuff[255];
    DWORD dwSerial;
    DWORD dwMFL;
    DWORD dwSysFlags;
    int error = 0;
 
    bool fail = GetVolumeInformationA("C:\\", (LPSTR)szVolNameBuff, 255, &dwSerial, &dwMFL, &dwSysFlags, (LPSTR)szFileSys, 255);
    if (!fail) {
        initstring = "Error : Not elevated (please run this with admin rights)";
        return initstring;
    }
 
    stringstream hwidstream;
    hwidstream << hex << dwSerial;
 
    string HWID = hwidstream.str();
 
    for (int i = 0; i < HWID.length(); i++)
        HWID[i] += 6; // (you can change this to shift as much as you want)
 
    return HWID;
}
но VS ругается что я перегрузил функцию GetHWID()
Ошибка (активно) E0311 не удается перегрузить функции, различаемые только по типу возвращаемого значения MathLibrary C:\source\repos\MathLibrary\MathLibrary\ MathLibrary.cpp 18
Подскажите плиз что в этом коде не так?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2024, 21:44
Ответы с готовыми решениями:

Функция, конвертирующая число в строку и возвращающая указатель на эту строку
#include &lt;iostream&gt; using namespace std; int mystrlen(const char* str) { const char* cur = str; for (; *cur; ++cur); return...

Функция, реверсирующая строку и возвращающая указатель на новую строку
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; int mystrlen(const char* str) { const char* cur = str; for (;...

Инвертировать текстовую строку
добрый день! не работает код, помогите исправить ошибку #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;cstdlib&gt; ...

24
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6313 / 3036 / 1053
Регистрация: 01.06.2021
Сообщений: 11,558
13.06.2024, 13:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от _tester_ Посмотреть сообщение
Сейчас что не так?
В шапке
Чтобы распознавался BSTR нужно добавить заголовочный файл wtypes.h
0
1 / 1 / 1
Регистрация: 19.04.2018
Сообщений: 101
13.06.2024, 14:01  [ТС]
При вызове любой функции дает
Code
1
Была сделана попытка загрузить программу, имеющую неверный формат.
Добавлено через 1 минуту
полный код. #include <wtypes.h> включен

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// MathLibrary.h - Contains declarations of math functions
#pragma once
#include <wtypes.h>
//#include <string>
 
#ifdef MATHLIBRARY_EXPORTS
#define MATHLIBRARY_API __declspec(dllexport)
#else
#define MATHLIBRARY_API __declspec(dllimport)
#endif
 
extern "C" MATHLIBRARY_API void fibonacci_init(
    const unsigned long long a, const unsigned long long b);
 
extern "C" MATHLIBRARY_API bool fibonacci_next();
 
extern "C" MATHLIBRARY_API unsigned long long fibonacci_current();
 
extern "C" MATHLIBRARY_API unsigned fibonacci_index();
 
extern "C" MATHLIBRARY_API BSTR GetHWID();
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6313 / 3036 / 1053
Регистрация: 01.06.2021
Сообщений: 11,558
13.06.2024, 14:33
Цитата Сообщение от _tester_ Посмотреть сообщение
Все равно не работает
а что не работает? У меня твоя либа скомпилировалась без ошибок. Значит что-то не так с кодом C#
0
1 / 1 / 1
Регистрация: 19.04.2018
Сообщений: 101
13.06.2024, 14:46  [ТС]
У меня тоже dll-ка компилируется без ошибок. Но при подключении к проекту c# дает ошибку "Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)"
Раз ошибок нет, то перейду в ветку про с#
Спасибо большое
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
13.06.2024, 16:28
_tester_, проверьте разрядность получившейся библиотеки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2024, 16:28

Указатель на константную текстовую строку
С точки зрения стандарта это валидный код? int main() { char* pproverb{ &quot;A miss is as good as a mile.&quot; }; return 0; ...

Как правильнее ввести текстовую строку
почему стандартный ввод небезопасен? что лучше делать так char str; char *s; s = gets( str ); почему лучше так?

Выполнить С++ код записанный в текстовую строку
#include &lt;stdio.h&gt; int execute(const char* f) { //todo } int main () { char* func=&quot;printf(\&quot;hello!\&quot;);&quot;; ...

Вывести четные числа записанные в текстовую строку
Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки.

Описать функцию, которая формирует текстовую строку
Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию, которая формирует текстовую строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru