Вот DllImport'ы для использования cft api в своих .net программах (спасибо erix920 с cs.rin.ru за его прогу с таким же названием как и у моей dll :), взял оттуда большую часть кода)
Как юзать (для английской студии):
1. Проверяем что наша программа только x86 (project properties -> build -> platform target) ну или мы получим "неверный образ" на x64 системах как только программа начнет обращаться к cft api
2. Копируем все dll в output папку (к примеру bin\release)
3. Добавляем CFTAPIDotNet.dll в References
4. Наслаждаемся и не забываем распространять вместе с программой все dll из архива
Пример (c#):
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CFTAPIDotNet;
namespace CTFAPIDotNet_Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
CFTApiDotNet.CFTAPI_initLogs(Application.StartupPath + @"\log.txt", false); // Необходимо, выполняйте прежде, чем пользоваться всеми остальными функциями
CFTApiDotNet.CFTAPI_setLogLevel(CFTApiDotNet.LOG_LEVEL_INFO);
CFTApiDotNet.CFInfo contentinfo = new CFTApiDotNet.CFInfo();
contentinfo = CFTApiDotNet.CFTAPI_getCFInfo(@"F:\games\steam\steamapps\garrysmod content.gcf", @"F:\games\steam\steamapps\common"); // Первый параметр - путь к gcf, второй - путь к common
textBox1.Text = @"F:\games\steam\steamapps\garrysmod content.gcf";
textBox1.Text += "\r\nAppID: " + contentinfo.appId + "\r\n" + "Версия: " + contentinfo.appVersion + "\r\n" + "Готовность: " + contentinfo.completion + "\r\n" + "Тип: " + contentinfo.cfType; // cfType возвращает: 0=неверный файл 1=gcf 2=ncf
CFTApiDotNet.CFTAPI_closeLogs(Application.StartupPath + @"\log.txt", false); // Необходимо, выполняйте когда вам больше не нужен cftapi, либо когда закрываете программу. (Для повторного использования cftapi не забываем выполнять CFTAPI_initLogs)
}
}
}
Качаем