blueberry
Goto Top

Cpp vector in DLL verwenden

Hallo Zusammen

Kleines Vorwrt:
Ich habe in C++ ein paar Funktionen geschrieben, die ich gerne in eine DLL aufnehmen möchte und diese dann in C# importieren und verwenden.
Ich verwende sonst, eigtl. C# für so ziemlich alles, da man mit C# aber performence mässig nicht so gut dran ist, wie bei C++, habe ich mich entschieden, die Funktion in C++ umzuschreiben.
Dazu muss ich noch sagen, dass meine C++ Kenntnisse eher bescheiden sind...
Ich verwende VS2010 unter Win 7, was aber keine wesentlichen Punkte sein dürften.

Zum Problem:
Wie oben schon erwähnt, habe ich eine Methode umgeschrieben, aber wenn ich das ganze builden möchte, kommen folgende Fehler:

Error 1 error C2143: syntax error : missing ';' before '<' l:\calculation\calculation\calculation.cpp 45 1 Calculation
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int l:\calculation\calculation\calculation.cpp 45 1 Calculation
Error 3 error C2143: syntax error : missing ';' before '{' l:\calculation\calculation\calculation.cpp 46 1 Calculation
Error 4 error C2447: '{' : missing function header (old-style formal list?) l:\calculation\calculation\calculation.cpp 46 1 Calculation
5 IntelliSense: vector is not a template l:\calculation\calculation\calculation.cpp 9 1 Calculation
6 IntelliSense: identifier "vector" is undefined l:\calculation\calculation\calculation.cpp 11 2 Calculation
7 IntelliSense: type name is not allowed l:\calculation\calculation\calculation.cpp 11 9 Calculation
8 IntelliSense: identifier "primes" is undefined l:\calculation\calculation\calculation.cpp 11 14 Calculation
9 IntelliSense: vector is not a template l:\calculation\calculation\calculation.cpp 45 2 Calculation
10 IntelliSense: identifier "vector" is undefined l:\calculation\calculation\calculation.cpp 47 3 Calculation
11 IntelliSense: type name is not allowed l:\calculation\calculation\calculation.cpp 47 10 Calculation
12 IntelliSense: identifier "factors" is undefined l:\calculation\calculation\calculation.cpp 47 15 Calculation

Zum verständnis ist hier noch mein Source-Code:

#include "stdafx.h" 
#include <cstring> 
#include <math.h>
#include <vector>

vector<int> _stdcall GetPrimes(int min, int max)
 {
	vector<int> primes;

	if(min <= 2)
	{
		primes.push_back(2);
		min = 3;
	}
	else if(min % 2 == 0)
	{
		min++;
	}

	for(int i = min; i < max; i+=2)
	{
		int testScope = floor(sqrt(double(i)));
		primes.push_back(i);
		for(int j = 3; j < testScope; j +=2)
		{
			if((i % j) == 0)
			{
				primes.pop_back();
				break;
			}
		}
	}

	return primes;
};

 vector<int> _stdcall GetFactors(int Number)
 {
	 vector<int> factors;
	 
	 factors.push_back(1); 

	 for(int i = 2; i < Number; i++)
	 {
		if((Number % i) == 0)
		{
			factors.push_back(i);
		}
	 }
	 factors.push_back(Number);

	 return factors;
 };

Wenn ich das richtig verstehe, kann er die "vectors<int>" aus irgendwelchen Gründen nicht verwenden. Um mein Code zu testen, habe ich vorher eine Console-App gemacht, da hatte ich mit den vector<int> überhaupt keine Probleme...
Ich hoffe ihr könnt mir helfen, den Fehler zu finden!
Danke

Gruss Blueberry

Content-Key: 152458

Url: https://administrator.de/contentid/152458

Printed on: April 24, 2024 at 12:04 o'clock

Member: Blueberry
Blueberry Oct 06, 2010 at 10:09:04 (UTC)
Goto Top
Hab das Problem gelöst, ich hab lediglich diese Zeile vergessen:
 using namespace std;
-.-